Несколько сервисов, использующих диспетчер заданий Firebase в Android

Для приложения для Android я хочу запустить три службы, используя диспетчер заданий firebase в разные дни. Могу ли я использовать один и тот же объект FirebaseDispatcher для всех трех заданий? Между тем, как поддерживать тот же объект FirebaseDispatcher, даже если приложение закрыто? Если я использую статический объект, он будет очищен в случае сбоя приложения. Итак, как поддерживать мой объект FirebaseDispatcher для планирования нескольких служб с использованием одного и того же объекта диспетчера? или Могу ли я создать другой объект FirebaseDispatcher для разных служб? Это хорошая практика?


person sathish    schedule 13.10.2017    source источник


Ответы (1)


  1. Вы можете использовать один и тот же FirebaseJobDispatcher для всех заданий.
  2. Когда приложение будет закрыто, ваши задания будут выполнены. Как? Это касается ОС Android.
  3. Вы просто описываете, когда и как будут запущены ваши задания. Это все. Прочтите документацию еще раз и посмотрите комментарии в исходном коде библиотеки.
  4. Вы можете создать новый FirebaseJobDispatcher для разных заданий.
  5. Неправильное применение статических объектов - плохая практика.

So

FirebaseJobDispatcher dispatcher1 =
    new FirebaseJobDispatcher(new GooglePlayDriver(context));

Job job1 = dispatcher1.newJobBuilder()
    .setService(YourService1.class)
    .setTag(Const.JOB_TAG_1)
    // more options to run
    .build();

Job job2 = dispatcher1.newJobBuilder()
    .setService(YourService2.class)
    .setTag(Const.JOB_TAG_2)
    // ...
    .build();

dispatcher1.mustSchedule(job1);

FirebaseJobDispatcher dispatcher2 =
    new FirebaseJobDispatcher(new GooglePlayDriver(context));

dispatcher2.mustSchedule(job2);

dispatcher1.cancel(Const.JOB_TAG_1);
dispatcher2.cancel(Const.JOB_TAG_2);
person tim4dev    schedule 15.10.2017
comment
Спасибо за вашу помощь. - person sathish; 17.10.2017