Bia*_*ali 5 android backgroundworker kotlin android-workmanager
我正在学习 Udacity Android Kotlin 开发人员课程。在其中一课中,讲师教授了如何使用 WorkManager 执行后台任务,始终在后台缓存数据,以便在应用程序启动时显示新数据。
因此,启动 WorkManager 定期刷新数据的代码是在应用程序的主应用程序中定义的。
class DevByteApplication : Application() {
/**
* onCreate is called before the first screen is shown to the user.
*
* Use it to setup any background tasks, running expensive setup operations in a background
* thread to avoid delaying app start.
*/
val applicationScope = CoroutineScope(Dispatchers.Default)
override fun onCreate() {
super.onCreate()
Timber.plant(Timber.DebugTree())
delayedInit()
}
private fun delayedInit() = applicationScope.launch {
setupRecurringWork()
}
private fun setupRecurringWork() {
val constraints = Constraints.Builder()
.setRequiredNetworkType(NetworkType.UNMETERED)
.setRequiresBatteryNotLow(true)
.setRequiresCharging(true)
.apply {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
setRequiresDeviceIdle(true)
}
}.build()
val repeatingRequest = PeriodicWorkRequestBuilder<RefreshDataWorker>(1, TimeUnit.DAYS)
.build()
WorkManager.getInstance().enqueueUniquePeriodicWork(
RefreshDataWorker.WORK_NAME,
ExistingPeriodicWorkPolicy.KEEP,
repeatingRequest)
}}
Run Code Online (Sandbox Code Playgroud)
问题是:
那么 WorkManager 是否仅在应用程序启动一次后才开始工作?或者一旦我们安装应用程序它就开始工作?
还,
1. 如果我们完全关闭手机 - 一旦我们重新打开手机,我们应用程序的 WorkManager 还会工作吗 2. 如果我们完全关闭应用程序 - WorkManager 还会工作吗?
如果您有专门讨论这些问题的资料来源,我很乐意阅读它们!
| 归档时间: |
|
| 查看次数: |
3734 次 |
| 最近记录: |