提问人:Yossi Dahan 提问时间:11/14/2023 更新时间:11/18/2023 访问量:27
使用 enqueueUniquePeriodicWork 排队的辅助角色类停止工作
Worker class enqueued with enqueueUniquePeriodicWork stops working
问:
我有一个 Worker 类 - 我使用它排队public class UpdatePushRegistration extends Worker
PeriodicWorkRequest myWorkRequest = new PeriodicWorkRequest.Builder(UpdatePushRegistration.class, 20, TimeUnit.MINUTES)
.build();
WorkManager.getInstance(getApplicationContext()).enqueueUniquePeriodicWork("UpdatePushNotification", ExistingPeriodicWorkPolicy.CANCEL_AND_REENQUEUE,myWorkRequest);
当我在调试器中运行并让我的笔记本电脑运行时,它似乎工作正常。当我在手机上运行时(通过复制 APK 或通过商店发布),它会运行多次,有时低至 2 次,然后停止(我写入基于云的日志)。我在两种不同的手机型号上尝试了这个。
知道为什么会停止或如何排除故障吗?
答:
1赞
Zain
11/18/2023
#1
知道为什么会停止或如何排除故障吗?
可能是因为它是一个长时间运行的工作程序,在这种情况下,文档为长时间运行的工作程序提供支持,该工作线程代表您运行前台服务以执行 .WorkRequest
这需要调用 startForeground()
来更新与前台服务关联的通知:
这些 API 允许开发人员指定此 WorkRequest 是 重要(从用户角度来看)或长时间运行。
评论