Я использую FirebaseJobDispatcher
и JobService
, чтобы поработать с фоном. В основном я хочу зарегистрироваться на экране включения / выключения приемника. Когда задание вызывается впервые, получатель регистрируется так, как предполагалось.
Однако сразу после вызова onStartJob()
, onDestroy()
и, согласно журналам, получатель становится нулевым. Если я пытаюсь включить / выключить экран, я не вижу никаких журналов от приемника. Что я здесь не так делаю?
В onStratJob()
У меня есть следующий код:
public boolean onStartJob(@NonNull JobParameters job) {
Log.i(JobFormActivity.TAG, "onStartJob() called");
if (screenBroadcast == null){
Log.e(JobFormActivity.TAG, "onStartJob() --> receiver is null, registering receiver");
IntentFilter screenStateFilter = new IntentFilter();
screenStateFilter.addAction(Intent.ACTION_SCREEN_ON);
screenStateFilter.addAction(Intent.ACTION_SCREEN_OFF);
registerReceiver(screenBroadcast, screenStateFilter);
}
return false;
}
В onStopJob()
У меня есть следующий код:
@Override
public boolean onStopJob(@NonNull JobParameters job) {
Log.e(JobFormActivity.TAG, "onStopJob() called");
if(screenBroadcast != null) {
Log.e(JobFormActivity.TAG, "onStopJob() --> receiver is not null, unregistering receiver");
unregisterReceiver(screenBroadcast);
}
return false;
}
В onDestroy()
У меня есть следующий код:
public void onDestroy() {
super.onDestroy();
Log.e(JobFormActivity.TAG, "onDestory()");
if(screenBroadcast != null)
Log.e(JobFormActivity.TAG, "onDestroy() --> receiver is not null");
else
Log.e(JobFormActivity.TAG, "onDestory() --> receiver is null");
}