Обычно для одного IntentService можно определить слушателя широковещательного приемника, как это в OnCreate это деятельность (в) метод (например)Можно ли использовать один BroadcastReceiver для нескольких IntentServices?
broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//get stuff from the intent and do whatever you want
}
};
И вы зарегистрировать приемник, как это (также в OnCreate()):
LocalBroadcastManager.getInstance(this)
.registerReceiver(broadcastReceiver, new IntentFilter("my_intent_service"));
И тогда вы начинаете IntentService с:
Intent intent = new Intent(this, MyIntentService.class);
startService(intent);
И в IntentService отправлять сообщения назад к приемнику с:
Intent broadcastIntent = new Intent("my_intent_service");
broadcastIntent.putExtra("whateverData", whateverData);
LocalBroadcastManager.getInstance(this).sendBroadcast(broadcastIntent);
, который запускает onReceive
метод, описанный ранее.
А потом разрегистрировать приемники, в методе OnDestroy вы можете сделать:
LocalBroadcastManager.getInstance(this).unregisterReceiver(broadcastReceiver);
в файле манифеста, вы добавляете к вашим услугам:
<service
android:name=".MyIntentService"
android:exported="false" />
Я хочу получать трансляции из нескольких IntentServices в той же деятельности.
Вам нужен один приемник на IntentService? Как и в случае, если я делаю n
IntentServices, мне необходимо зарегистрировать приемники n
, сделать n
слушателем и отменить регистрацию n
приемников в onDestroy?