【发布时间】:2019-08-21 03:39:09
【问题描述】:
我正在开发一个 Android 应用程序,每次用户打开 Wi-Fi 或移动数据时,我都使用 Firebase JobDispatcher 库来运行后台作业,但不幸的是,该库已被弃用,现在新的 WorkerManager 是去吧。
我的问题是每次互联网可用时如何使用 WorkerManager 运行作业仅?
我查看了 WorkerManager 库迁移指南和文档,但我无法使用 OneTimeWorkRequest 或 PeriodicWorkRequest 实现。
这是我使用 Firebase JobDispatcher 库实现该目标的代码。
FirebaseJobDispatcher dispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(this));
Job networkJob = dispatcher.newJobBuilder()
.setService(NetworkJobService.class)
.setTag(Const.NETWORK_JOB_TAG)
.setReplaceCurrent(true)
.setLifetime(Lifetime.FOREVER)
.setRetryStrategy(RetryStrategy.DEFAULT_LINEAR)
.setRecurring(true)
.setTrigger(Trigger.executionWindow(0, 0))
.setConstraints(Constraint.ON_ANY_NETWORK)
.build();
dispatcher.schedule(networkJob);
【问题讨论】:
-
嗨@Waxren,无论使用 android-jobscheduler 还是 android-workmanager,您是否只想在互联网进入时触发监听器?
-
是的,但即使应用程序已关闭且未运行
标签: java android android-jobscheduler android-workmanager jobservice