[英]Android schedule job on interval for defined amount of time
I'm wondering is there a possibility in some of the scheduling libraries in Android SDK that can achieve this type of behaviour:我想知道 Android SDK 中的一些调度库是否有可能实现这种行为:
There are some stuff like ScheduledThreadPoolExecutor and some custom solutions, but how could I achieve this with officially approved libraries?有一些像 ScheduledThreadPoolExecutor 和一些自定义解决方案之类的东西,但是我如何使用官方批准的库来实现这一点? Thanks.谢谢。
Work Manager is the finest option for job scheduling.工作管理器是作业调度的最佳选择。
val workManager = WorkManager.getInstance(context)
val oneTimeRequest = OneTimeWorkRequest.Builder(BackupFileUploadWorker::class.java)
.setConstraints(constraints)
.build()
workManager.enqueueUniqueWork(BackupFileUploadWorker::class.java.simpleName, ExistingWorkPolicy.REPLACE, oneTimeRequest)
var builder : PeriodicWorkRequest.Builder? = null
var periodicWorkRequest : PeriodicWorkRequest? = null
when(backupSettings.backupDuration){
context.getString(R.string.backup_type_duration_never) -> {
return
}
context.getString(R.string.backup_type_duration_daily) -> {
builder = PeriodicWorkRequest.Builder(BackupFileUploadWorker::class.java, 1, TimeUnit.DAYS)
}
context.getString(R.string.backup_type_duration_weekly) -> {
builder = PeriodicWorkRequest.Builder(BackupFileUploadWorker::class.java, 7, TimeUnit.DAYS)
}
context.getString(R.string.backup_type_duration_monthly) -> {
builder = PeriodicWorkRequest.Builder(BackupFileUploadWorker::class.java, 30, TimeUnit.DAYS)
}
}
periodicWorkRequest = builder?.build()
workManager.enqueueUniquePeriodicWork(BackupFileUploadWorker::class.java.simpleName, ExistingPeriodicWorkPolicy.REPLACE, periodicWorkRequest!!)
For more details please refer to official documents by this [Work Manager] ( https://developer.android.com/topic/libraries/architecture/workmanager )更多详情请参考本【工作经理】官方文档( https://developer.android.com/topic/libraries/architecture/workmanager )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.