Начиная с Android Oreo, большинство приемников Broadcast необходимо регистрировать во время выполнения вместо декларации манифеста.
BroadcastReceiver myReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//Do Something
}
};
Затем зарегистрируйте получателя:
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(ConnectivityManager.THE_REQUIRED_ACTION);
registerReceiver(myReceiver, intentFilter);
и отменить регистрацию:
unregisterReceiver(myReceiver);
Вы можете зарегистрировать / отменить регистрацию получателей во время выполнения, добавив приведенный выше код к onResume () / onPause () соответственно.
Если вы хотите, чтобы получатель сохранялся, даже если приложение находится в фоновом режиме, вы можете вместо этого зарегистрироваться / отменить регистрацию в своем классе приложения.
Если вы хотите, чтобы он сохранялся после выхода пользователя из приложения, вам необходимо зарегистрировать получателя в планировщике сервиса или работы.