Работа с JobDispatcher

180
14 февраля 2019, 16:00

Всем привет, есть приложение в котором есть MyFbMessagingService наследующий FirebaseMessagingService. В манифесте прописано так:

    <service android:name=".MyFbMessagingService"
        android:enabled="true"
        android:exported="true"
        >
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>
    <service android:name=".MyFirebaseInstanceIDService">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
        </intent-filter>
    </service>
    <service
        android:exported="false"
        android:name=".JobDispatcherMessagingService">
        <intent-filter>
            <action android:name="com.firebase.jobdispatcher.ACTION_EXECUTE" 
    />
        </intent-filter>
    </service>

В инфе фаербейса указано мол используйте для длительных заданий jobdispatcher, в коде он создается вот так -

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    super.onMessageReceived(remoteMessage);
    if (remoteMessage.getData().size() > 0){
        sheduleJob();
        /*
        Class<?> c = null;
        int activeWindow = Integer.valueOf(remoteMessage.getData().get("active_window"));
        int activeItemId = Integer.valueOf(remoteMessage.getData().get("active_item_id"));
        c = PushWindowConstants.getClassForId(activeWindow);

        Gson gson = new Gson();
        ArrayList<NotificationMessage> notificationMessages = gson.fromJson(remoteMessage.getData().get("messages"),
                new TypeToken<ArrayList<NotificationMessage>>() {
                }.getType());
        for (NotificationMessage message : notificationMessages) {
            if (message.getLanguage().equals("RU")) {
                showNotification(message.getBody(), activeItemId, c);
                break;
            }
        }
        ShortcutBadger.applyCount(this, ++App.notificationCounter);
         */
    }
}
private void sheduleJob() {
    FirebaseJobDispatcher dispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(this));
    Job myJob = dispatcher.newJobBuilder()
            .setService(JobDispatcherMessagingService.class)
            .setTag("my-job-tag")
            .build();
    dispatcher.schedule(myJob);
}

В закомментированных строчках предыдущий код (проблема была в том что когда приложение закрыто и приходят уведомления - они приходят без текста уведомления) + нужно это все подганять к более современным версиям андроида. Вопрос такой - как передать параметры RemoteMessage remoteMessage в JobDispatcherMessagingService он старт например?

Спасибо большое заранее!)

READ ALSO
Как создать лист в фрагменте, не создавая активность?

Как создать лист в фрагменте, не создавая активность?

Из главной активности в разметке вызываю

174
Поиск букв в строке (java)

Поиск букв в строке (java)

Пишу игрушку в которой надо угадать строку (название фильма) вводя отдельные буквы (игра типа "Поле чудес")Если введенная буква присутствует...

244
idea не работают методы из deeplearning4j

idea не работают методы из deeplearning4j

При помощи gradle в Java проект в Intellij Ide добавил зависимости для deeplearning4jВот мой файл build

171
Взаимодействие JavaFX и Spring Boot

Взаимодействие JavaFX и Spring Boot

Надо создать небольшую пользовательскую форму Java FX, записать в in-memory Data Base данные с этой формы, используя spring bootКонкретно интересует точка...

208