Worker 类没有被 OneTimeWorkRequest 触发
我有这个 OneTimeWorkRequest 不会触发我的 SendFeedbackMessageWorker。 工作请求应该用约束“.setRequiredNetworkType(NetworkType.CONNECTED)”触发,但是每当我尝试在没有网络连接的情况下发送消息然后再次连接时,该类永远不会被触发。
有人能指出这是哪里坏了吗?
private void handleFeedbackMessageFailure(Context context, FeedbackMessage message) {
Constraints constraints4 = new Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.build();
Data myFeedbackMessage = new Data.Builder()
.putString("myFeedbackMessageId", message.getId())
.putString("myFeedbackMessage", message.getFeedbackMessage())
.putString("myFeedbackPerson", message.getFeedbackPersonName())
.putString("myFeedbackCreated", message.getCreated().toString())
.build();
OneTimeWorkRequest sendFeedbackWorker = new OneTimeWorkRequest.Builder(SendFeedbackMessageWorker.class)
.setInputData(myFeedbackMessage)
.setConstraints(constraints4)
.build();
WorkManager.getInstance(context).enqueue(
sendFeedbackWorker
);
I have this OneTimeWorkRequest that don't trigger my SendFeedbackMessageWorker.
The work request should get triggered with the constraint ".setRequiredNetworkType(NetworkType.CONNECTED)", but whenever I try to send a message without network connected and then connect again, the class is never triggered.
Can anybody point out where this is broken?
private void handleFeedbackMessageFailure(Context context, FeedbackMessage message) {
Constraints constraints4 = new Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.build();
Data myFeedbackMessage = new Data.Builder()
.putString("myFeedbackMessageId", message.getId())
.putString("myFeedbackMessage", message.getFeedbackMessage())
.putString("myFeedbackPerson", message.getFeedbackPersonName())
.putString("myFeedbackCreated", message.getCreated().toString())
.build();
OneTimeWorkRequest sendFeedbackWorker = new OneTimeWorkRequest.Builder(SendFeedbackMessageWorker.class)
.setInputData(myFeedbackMessage)
.setConstraints(constraints4)
.build();
WorkManager.getInstance(context).enqueue(
sendFeedbackWorker
);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如下所述,检查JS信息:
httpps:https:// developer。 android.com/topic/libraries/architecture/workmanager/how-to/debugging
使用:
倒入Jobscheduler-
ADB Shell在结果中
检查约束部分中不满意的内容。如果是连接性:
检查您期望的功能(作业信息中的日志的一部分),并将它们与当前的活动网络功能进行比较。
同样,如果没有足够的时间问题 - 您将在约束中看到它。
Check the JS info as described here:
https://developer.android.com/topic/libraries/architecture/workmanager/how-to/debugging
Use:
adb shell dumpsys jobscheduler
In the result - check what is unstatisfied in the Constraints section.
If it is Connectivity:
Check what Capabilities you expect(part of the logs in the job info) and compare them to the current active network Capabilities.
Also if not enough time is the problem - you will see it there in the constraints.