Подскажите пожалуйста как мне правильно передать строку из Receiver в MainActivity и в остальные классы, есть ресирвер который принимает данные, подставляет их в строку и должен передать в другие 3 класса, но передает строку только в один или максимум два класса, в третий не дает, как исправить данный код? Программа используется на ТСД, лазер считывает штрих или DataMatrix код.
public class ScanTestReceiver extends BroadcastReceiver {
private static final String TAG = "ScanTestReceiver";
private NotificationManager mNm = null;
private static final String SCANKEY = ScanUtil.SCANKEY;
private static final String SCAN_DECODING_BROADCAST = ScanUtil.SCAN_DECODING_BROADCAST;
public String scancode, keycode;
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
String action = intent.getAction();
Bundle extras = intent.getExtras();
for (String key : extras.keySet()) {
String v = intent.getStringExtra(key);
Log.d("~~~~~myApplication", "~~~~~" + key + " is a key in the bundle with value " + v);
}
int scanKey = intent.getIntExtra(SCANKEY, -1);
mNm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
if (SCAN_DECODING_BROADCAST.equals(action) /* && isScanKeyEnable(context,scanKey) */) {
Intent serviceIntent = new Intent(context, ScanTestService.class);
context.startService(serviceIntent);
scancode = intent.getStringExtra("EXTRA_BARCODE_DECODING_SYMBOLE");
keycode = intent.getStringExtra("EXTRA_BARCODE_DECODING_DATA");
Log.i(TAG, "Сработало событие EXTRA_BARCODE_DECODING_DATA__" + scancode + "_" + scanKey + "_" + keycode);
if (scancode.equals("Code 128")) {
try {
MainActivity .getInstace().updateTheTextView(scancode+ "_" + keycode);
ScanPriemSKoles .getInstace().updateTheTextView(scancode+ "_" + keycode);
} catch (Exception e) {
}
} else if (scancode.equals("Data Matrix")) {
try {
MainActivity .getInstace().updateTheTextView(scancode+ "_" + keycode);
Log.i(TAG, "Data Matrix------------------------------------для приема на склад" + action);
RetirementScan .getInstace().updateTheTextView(scancode+ "_" + keycode);
Log.i(TAG, "Data Matrix------------------------------------для выдачи в отделения" + action);
ScanPriemSKoles .getInstace().updateTheTextView(scancode+ "_" + keycode);
Log.i(TAG, "Data Matrix------------------------------------для выдачи с колес" + action);
} catch (Exception e) {
}
} else {
try {
MainActivity .getInstace().updateTheTextView( "Ошибка_1");
RetirementScan .getInstace().updateTheTextView( "Ошибка_1");
// ScanPriemSKoles .getInstace().updateTheTextView( "Ошибка_1");
} catch (Exception e) {
}
}
ToneGenerator ToneGenerator1 = new ToneGenerator(STREAM_MUSIC, 30);
ToneGenerator1.startTone(TONE_DTMF_6, 100);
}
}
}
код MainActivity
public static MainActivity getInstace(){
return ins;
}
public void updateTheTextView(final String t) {
MainActivity.this.runOnUiThread(new Runnable() {
public void run() {
String[] words = t.split("_");
for(String word : words) {
}
x = words[0];
z = words[1];
}
});
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Разбираюсь с методом paint(Graphics) у компонентов интерфейсаСтолкнулся с такой интересной особенностью
Есть следующий код, который работает при скачивании файлов с заранее известным размером (выполняется внутри AsyncTask):
Необходимо, что бы в программе был и web и main файл, стартующий при запуске программыСобираю для jboss с помощью мавена war и main не отрабатывает