我需要执行快速周期性的后台任务,但是PeriodicWorkRequest限制在15分钟内,所以我使用OneTimeWorkRequest并重新设置它本身。我设置了不强制充电的约束,但根据我的测试,当显示器关闭,充电电缆没有连接时(大约在停止1分钟后),OneTimeWorkRequest不会运行,但是当充电电缆连接时,它工作得很好!我有这个问题,只有在android 12,无论它是否工作在android 6-7-8和10测试!
Constraints constraints = new Constraints.Builder()
.setRequiredNetworkType(NetworkType.NOT_REQUIRED)
.setRequiresCharging(false)
.setRequiresBatteryNotLow(false)
.build();
WorkRequest sendWorkRequest = new OneTimeWorkRequest.Builder(PeriodicSync.class).setInitialDelay(10, TimeUnit.SECONDS)
.addTag("sendData").setConstraints(constraints).build();
WorkManager.getInstance(Global.Controller().loginActivity).enqueue(sendWorkRequest);发布于 2022-11-27 06:58:55
在Android12上,在work中使用setExpedited()方法:
val request = OneTimeWorkRequestBuilder<HighPriorityWorker>()
.setExpedited(OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST)
.build()
WorkManager.getInstance(context).enqueue(request)调用setExpedited()告诉框架,这项工作很重要,应该优先于其他计划中的工作。
https://stackoverflow.com/questions/74588078
复制相似问题