在我的应用程序中,我使用工作管理器进行定期工作。在下面的代码中,如果设备具有互联网连接,则我的工作每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小时后执行工作。如何实现这一目标。预先感谢
答案 0 :(得分:0)
一种可能的解决方案是在您的Text {
text: "<span style=\"font-family:SF Pro Text;\">
Outer
<span style=\"font-family:SF Pro Text;\">Inner Text</span>
Text
</span>";
textFormat: Text.RichText
}
中添加NetworkType.CONNECTED
的约束。然后,在您的PeriodicWorkRequest
中,使用foxtrot merge检查您是否已连接WIFI或蜂窝数据,然后采取相应措施