Worker class 未被 OneTimeWorkRequest 触发

Worker class not getting triggered by the OneTimeWorkRequest

我的 OneTimeWorkRequest 不会触发我的 SendFeedbackMessageWorker。 工作请求应该通过约束“.setRequiredNetworkType(NetworkType.CONNECTED)”触发,但是每当我尝试在没有网络连接的情况下发送消息然后再次连接时,class 永远不会被触发。

谁能指出哪里出了问题?

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
        );

按照此处所述检查 JS 信息:

https://developer.android.com/topic/libraries/architecture/workmanager/how-to/debugging

使用: adb shell dumpsys jobscheduler

在结果中 - 检查约束部分中未统计的内容。

如果是连通性:

检查您期望的功能(作业信息中的部分日志)并将它们与当前活动的网络功能进行比较。

此外,如果时间不够是问题所在 - 您会在限制条件中看到它。