Utt*_*ara 5 android android-workmanager
由于WorkManager是Google I / O中的新功能,因此我正在尝试使用workmanager定期执行任务,
我正在做的是,PeriodicWorkRequest按如下方式安排工作:
Constraints constraints = new Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build();
PeriodicWorkRequest build = new PeriodicWorkRequest.Builder(SyncJobWorker.class, MY_SCHEDULE_TIME, TimeUnit.MILLISECONDS)
.addTag(TAG)
.setConstraints(constraints)
.build();
WorkManager instance = WorkManager.getInstance();
if (instance != null) {
instance.enqueueUniquePeriodicWork(TAG, ExistingPeriodicWorkPolicy.REPLACE, build);
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,当我请求时PeriodicWorkRequest它也会立即开始工作,
我正在使用 : implementation "android.arch.work:work-runtime:1.0.0-alpha04"
任何帮助将不胜感激。
您可以通过在PeriodicWorkRequest.Builder中使用弹性周期来实现。例如,如果您想在重复间隔结束(例如8小时)后的15分钟内运行Worker,代码将如下所示:
val periodicRefreshRequest = PeriodicWorkRequest.Builder(
RefreshWorker::class.java, // Your worker class
8, // repeating interval
TimeUnit.HOURS,
15, // flex interval - worker will run somewhen within this period of time, but at the end of repeating interval
TimeUnit.MINUTES
)
Run Code Online (Sandbox Code Playgroud)
小智 -1
要延迟任务,您可以使用 setInitialDelay。
我们使用 setInitialDelay 来确保通知在事件发生当天触发,而不是立即触发。此延迟是通过单独的方法计算的,该方法返回从现在到通知应触发的时间(事件发生日期的中午)之间的毫秒数。请注意,此延迟并不总是准确的!由于现代 Android 的工作方式,您的工作可能会因多种因素而延迟,因此对于时间敏感的目的请注意这一点。
所有信息都在这篇文章中。https://medium.com/@eydryan/scheduling-notifications-on-android-with-workmanager-6d84b7f64613
| 归档时间: |
|
| 查看次数: |
5087 次 |
| 最近记录: |