面试题答案
一键面试- 关键方法和参数:
- 在Kotlin的WorkManager中,使用
PeriodicWorkRequestBuilder
类来创建周期性任务。 - 关键方法是
setInitialDelay
用于设置任务首次执行的延迟时间,setPeriod
用于设置任务执行的周期。 setPeriod
方法的参数是一个Duration
对象,它定义了任务执行的间隔周期。Duration
可以通过Duration.ofXxx
系列方法来创建,比如Duration.ofHours(1)
表示1小时,Duration.ofDays(1)
表示1天等。最小周期在API 23及以上是15分钟,在API 22及以下是1小时。
- 在Kotlin的WorkManager中,使用
- 代码示例:
import android.content.Context
import androidx.work.*
import java.util.concurrent.TimeUnit
class MyPeriodicWorker(appContext: Context, workerParams: WorkerParameters) :
Worker(appContext, workerParams) {
override fun doWork(): Result {
// 这里编写你的任务逻辑
return Result.success()
}
}
// 创建周期性任务
val constraints = Constraints.Builder()
.setRequiresCharging(true)
.build()
val periodicWorkRequest = PeriodicWorkRequestBuilder<MyPeriodicWorker>(1, TimeUnit.HOURS)
.setInitialDelay(15, TimeUnit.MINUTES)
.setConstraints(constraints)
.build()
WorkManager.getInstance(applicationContext).enqueue(periodicWorkRequest)
上述代码创建了一个周期性任务,每小时执行一次,首次执行延迟15分钟,并且要求设备在充电时才执行任务。任务的具体逻辑在MyPeriodicWorker
的doWork
方法中编写。