Я смотрю на многие решения других вопросов со схожими проблемами, но не могу понять, что не так с моим кодом.Я понимаю, что LocalBroadcast является популярным способом сделать это, и я потратил время, пытаясь реализовать его.На данный момент получатель не объявлен в моем манифесте, но, насколько я понимаю, это то, для чего нужны строки register
.
В моей деятельности:
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("MyActivity", "onReceive");
String action = intent.getAction();
int current = intent.getIntExtra("test", 0);
Toast.makeText(MyActivity.this, current.toString(), Toast.LENGTH_LONG).show();
}
};
@Override
public void onResume() {
super.onResume();
Log.d("MyActivity", "onResume()");
LocalBroadcastManager.getInstance(MyActivity.this).registerReceiver(
mMessageReceiver, new IntentFilter("currentUpdate"));
}
@Override
protected void onPause() {
Log.d("MyActivity", "onPause()");
LocalBroadcastManager.getInstance(MyActivity.this).unregisterReceiver(mMessageReceiver);
super.onPause();
}
ВСлужба У меня есть метод, определенный:
private void sendNewBroadcast(Intent intent, int current){
intent.putExtra("test", current);
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
Log.d("MyService", "new Broadcast sent from service");
}
, и я использую его, как это в другом месте службы:
Intent intent = new Intent("currentUpdate");
sendNewBroadcast(intent, 5);
Я отладил, и все, кажется, работает, за исключением 'получая частьЯ что-то пропустил?Служба запущена в другом действии и продолжается.