对于一个 android 应用程序,我想在不同的日子使用 firebase 作业调度程序启动三个服务。我可以对所有三个作业使用相同的 FirebaseDispatcher 对象吗?同时,即使应用程序关闭,如何维护相同的 FirebaseDispatcher 对象?如果我使用静态对象,如果应用程序崩溃,它将被清除。那么如何维护我的 FirebaseDispatcher 对象以使用相同的调度程序对象调度多个服务呢?或者我可以为不同的服务创建不同的 FirebaseDispatcher 对象吗?这是好习惯吗?
问问题
601 次
1 回答
1
- 您可以对所有作业使用相同的 FirebaseJobDispatcher。
- 当应用程序关闭时,您的作业将被执行。如何?这是 Android 操作系统的关注点。
- 您只需描述何时以及如何启动您的职位。就是这样。再次阅读文档并查看库源代码中的注释。
- 您可以为不同的作业创建新的 FirebaseJobDispatcher。
- 静态对象的误用——是不好的做法。
所以
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);
于 2017-10-15T18:41:07.203 回答