Для этого можно использовать WorkManager .
Зависимость:
implementation "androidx.work:work-runtime-ktx:2.3.0"
Пример:
class LogWorker(appContext: Context, workerParams: WorkerParameters) : Worker(appContext, workerParams) {
override fun doWork(): Result {
// Do the work here--in this case, upload the images.
Log.i("ToastWorker", "doWork: Working ⚒ ⚒ ⚒")
// Indicate whether the task finished successfully with the Result
return Result.success()
}
}
Затем установите время задержки
val logWorkRequest = OneTimeWorkRequestBuilder<LogWorker>()
.setInitialDelay(5, TimeUnit.SECONDS) // here you can set the delay time in Minutes, Hours
.build()
Запустите таймер
WorkManager.getInstance(this).enqueue(toastWorkRequest)
Вот это Codelab для большего понимания. Вы также можете узнать больше здесь