首页 > 解决方案 > Periodicworkrequest 在较新版本的android中不起作用

问题描述

我无法在 16 分钟内调用一次定期工作。它仅在我在设备中运行应用程序时调用。如果我做错了,请检查下面的代码。我使用的是一加 7t 设备。

范围:我试图在 16 分钟内将房间数据库中存在的数据上传到服务器一次。

val constraints = Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build()

    val repeatingRequest = PeriodicWorkRequestBuilder<RefreshDataWorker>(16, TimeUnit.MINUTES)
            .setConstraints(constraints)
            .build()

    WorkManager.getInstance().//enqueue(repeatingRequest)
    enqueueUniquePeriodicWork(
            RefreshDataWorker.WORK_NAME,
            ExistingPeriodicWorkPolicy.KEEP,
            repeatingRequest)

和依赖

implementation "androidx.work:work-runtime-ktx:2.3.4"

标签: androidandroid-architecture-componentsandroid-jetpackandroid-workmanager

解决方案


它不工作的原因是,定期工作的最小间隔为 15 分钟。

使用警报管理器的更好建议。因为我发现 PeriodicWorkRequest 在某些设备和相应的 android 版本中不起作用。

作为参考,您可以访问开发者网站:https ://developer.android.com/reference/androidx/work/PeriodicWorkRequest#min_periodic_interval_millis


推荐阅读