Не удается выполнить LocalBroadcastManager из JobIntentService
У меня JobIntentService, в котором при соблюдении определенных условий он должен запустить LocalBroadCastManager, полученный моим MainActivity.
Я делаю это так:
LocalBroadcastManager localBroadcastManager = LocalBroadcastManager
.getInstance(MyJobIntentService.this);
[...]
localBroadcastManager.sendBroadcast(new Intent(
"com.durga.action.exit2"));
Определив LocalBroadCastManager таким образом в моей основной деятельности:
LocalBroadcastManager mLocalBroadcastManager3;
BroadcastReceiver mBroadcastReceiver3 = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("com.durga.action.exit2")) {
[my code]
}
}
};
mLocalBroadcastManager3 = LocalBroadcastManager.getInstance(this);
IntentFilter mIntentFilter3 = new IntentFilter();
mIntentFilter3.addAction("com.durga.action.exit2");
mLocalBroadcastManager3.registerReceiver(mBroadcastReceiver3, mIntentFilter3);
До сих пор я использовал подобный код, который использовал службы вместо JobIntentServices, но из API 26 больше невозможно выполнять службы в некоторых ситуациях, которые мне понадобятся, поэтому вместо этого мне нужно использовать JobIntentServices.
Код был этот:
LocalBroadcastManager localBroadcastManager = LocalBroadcastManager
.getInstance(MyService.this);
[...]
localBroadcastManager.sendBroadcast(new Intent(
"com.durga.action.exit2"));
Что я мог сделать, чтобы JobIntentService успешно запустил LocalBroadcastManager?
Я не могу дать более подробную информацию о том, в чем заключается ошибка, так как при выполнении на эмуляторе приложение просто завершает приложение с сообщением "приложение перестало работать, несмотря на то, что код находится в блоке try, catch. Это также в принципе невозможно из-за мои ресурсы компьютера для отладки API 26 в эмуляторе, чтобы получить больше информации, а также у меня нет физического устройства с API 26.