0

在我的应用程序中,我将工作管理器用于定期工作。在下面的代码中,如果设备有互联网连接,我的工作每 4 小时执行一次。

PeriodicWorkRequest.Builder myWorkBuilder =
                new PeriodicWorkRequest.Builder(FileUpload.class, 4,
                        TimeUnit.HOURS)
                        .setConstraints(new Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build());

        PeriodicWorkRequest myWork = myWorkBuilder.build();
        WorkManager.getInstance().enqueueUniquePeriodicWork("myJob", ExistingPeriodicWorkPolicy.REPLACE,myWork);

现在我想更改时间 - 如果设备连接到 WIFI,则工作应在每 20 分钟后执行一次,如果设备连接到蜂窝数据,则工作应在 12 小时后执行。如何实现这一点。提前致谢

4

1 回答 1

0

一种可能的解决方案是NetworkType.CONNECTED在您的PeriodicWorkRequest. 然后在你FileUpload.class检查你是否通过使用连接到WIFI或蜂窝数据然后采取相应的行动

于 2018-08-06T13:01:02.947 回答