Жизненный цикл BroadcastReceiver - программирование

Жизненный цикл BroadcastReceiver

1) У меня есть Activity. Эта активность запускает сервис, который, в свою очередь, создает и регистрирует BroadcastReceiver.

2) У меня есть Activity. Эта операция создает и регистрирует BroadcastReceiver.

Когда жизнь BroadcastReceiver заканчивается в каждом из вышеуказанных случаев? Другими словами - когда он будет уничтожен и больше не будет слушать трансляции?

4b9b3361

Ответ 2

Жизненный цикл 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();
}