首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当显示关闭时,OneTimeWorkRequest不运行

当显示关闭时,OneTimeWorkRequest不运行
EN

Stack Overflow用户
提问于 2022-11-27 06:49:09
回答 1查看 21关注 0票数 0

我需要执行快速周期性的后台任务,但是PeriodicWorkRequest限制在15分钟内,所以我使用OneTimeWorkRequest并重新设置它本身。我设置了不强制充电的约束,但根据我的测试,当显示器关闭,充电电缆没有连接时(大约在停止1分钟后),OneTimeWorkRequest不会运行,但是当充电电缆连接时,它工作得很好!我有这个问题,只有在android 12,无论它是否工作在android 6-7-8和10测试!

代码语言:javascript
复制
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);
EN

回答 1

Stack Overflow用户

发布于 2022-11-27 06:58:55

在Android12上,在work中使用setExpedited()方法:

代码语言:javascript
复制
val request = OneTimeWorkRequestBuilder<HighPriorityWorker>()       
    .setExpedited(OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST)   
    .build() 
WorkManager.getInstance(context).enqueue(request)

调用setExpedited()告诉框架,这项工作很重要,应该优先于其他计划中的工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74588078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档