【发布时间】:2021-02-22 20:48:14
【问题描述】:
什么是在特定时间(在我的情况下是每两天)执行任务(在我的情况下调用一个函数)的安全和更好的方法?
该函数从 Web 检索数据。我的目标是在网络服务器上发生变化时更新应用中的数据。
谢谢,干得好!
【问题讨论】:
标签: android kotlin scheduled-tasks schedule
什么是在特定时间(在我的情况下是每两天)执行任务(在我的情况下调用一个函数)的安全和更好的方法?
该函数从 Web 检索数据。我的目标是在网络服务器上发生变化时更新应用中的数据。
谢谢,干得好!
【问题讨论】:
标签: android kotlin scheduled-tasks schedule
1-如果你不需要精确的时间,你需要使用WorkManager并设置周期性工作请求
https://developer.android.com/topic/libraries/architecture/workmanager
fun CreateWorkRequest()
{
val workManager = WorkManager.getInstance(context)
val duration = 2*24*60*60*1000L //2 days in mili second
val workRequest = PeriodicWorkRequestBuilder<AutoBackUpWorker>(duration, TimeUnit.MILLISECONDS)
.setInitialDelay(duration/2, TimeUnit.MILLISECONDS)
.addTag("diaryBackUpWork")
.build()
workManager.enqueueUniquePeriodicWork("backupwork", ExistingPeriodicWorkPolicy.REPLACE, autoBackUpRequest)
}
工人阶级:
class RequestedWorker(val appContext: Context, workerParams: WorkerParameters) : Worker(appContext, workerParams)
{
override fun doWork()
{
}
}
2- 如果您需要准确的时间(例如每天晚上 8 点),您需要使用警报管理器
3- 在您的情况下,最好的选择是在 doWork() 方法中为下载请求实现 DownloadManager
【讨论】: