Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WorkManager not working periodically in Android

I was creating an android notification app which gives notification every 15 minutes after the alarm has been set.

it calls first time, and shows notification but workmanager not calling every 15 minutes.


 val myWorkRequest = PeriodicWorkRequestBuilder<ReminderWorker>(15, TimeUnit.MINUTES).build()

        WorkManager.getInstance(applicationContext)
            .enqueueUniquePeriodicWork("work", ExistingPeriodicWorkPolicy.REPLACE, myWorkRequest)

like image 332
Man Steel Avatar asked Nov 30 '25 22:11

Man Steel


1 Answers

After many days i found a solutions for periodic work manager Use time intervals of at least 1 hour. In document mentions minimum 15 minutes but it is not working don't why not mention in documents when i set 1 hours then it working.

  fun scheduleNotificationRepeated() {
    val constraints: Constraints = Constraints.Builder().apply {
        setRequiredNetworkType(NetworkType.CONNECTED)
        setRequiresBatteryNotLow(true)
    }.build()
    val request: PeriodicWorkRequest = PeriodicWorkRequest.Builder(
        NotifyWork::class.java, 1, TimeUnit.HOURS, 1, TimeUnit.HOURS)
        .setConstraints(constraints)
        .setInitialDelay(2, TimeUnit.HOURS)
        .setBackoffCriteria(BackoffPolicy.LINEAR, 1, TimeUnit.HOURS)
        .build()
    val instanceWorkManager = WorkManager.getInstance(this)
        instanceWorkManager.enqueueUniquePeriodicWork(
        "TAG_WORK_NAME",
        ExistingPeriodicWorkPolicy.KEEP,
        request
    )
}
like image 175
Binesh Kumar Avatar answered Dec 03 '25 11:12

Binesh Kumar



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!