Не удается выполнить 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.

0 ответов

Другие вопросы по тегам