Ответ 1
Объявить широковещательный приемник в манифесте для достижения независимого жизненного цикла для него.
http://developer.android.com/reference/android/content/BroadcastReceiver.html
1) У меня есть Activity. Эта активность запускает сервис, который, в свою очередь, создает и регистрирует BroadcastReceiver.
2) У меня есть Activity. Эта операция создает и регистрирует BroadcastReceiver.
Когда жизнь BroadcastReceiver заканчивается в каждом из вышеуказанных случаев? Другими словами - когда он будет уничтожен и больше не будет слушать трансляции?
Объявить широковещательный приемник в манифесте для достижения независимого жизненного цикла для него.
http://developer.android.com/reference/android/content/BroadcastReceiver.html
Жизненный цикл BroadcastReciever заканчивается (т.е. прекращает прием широковещательной передачи) при его отмене регистрации. обычно вы делаете это в методе onPause/onStop. но это зависит от вас технически.
Пример:
@Override
public void onResume() {
super.onResume();
// Register mMessageReceiver to receive messages.
LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver,
new IntentFilter("my-event"));
}
// handler for received Intents for the "my-event" event
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// Extract data included in the Intent
String message = intent.getStringExtra("message");
Log.d("receiver", "Got message: " + message);
}
};
@Override
protected void onPause() {
// Unregister since the activity is not visible
LocalBroadcastManager.getInstance(this).unregisterReceiver(mMessageReceiver);
super.onPause();
}