小编Tob*_*kan的帖子

定期工作请求未在工作管理器中执行 doWork

我正在尝试使用PeriodicWorkRequestin定期从远程 url 获取数据WorkManager。我已经实现了逻辑,这里的问题是我没有从Worker.

然而它似乎doWork()在第一次启动时调用,但它没有从网络调用中获取数据。我很惊讶,当我使用时,OneTimeWorkRequest我得到了成功的结果doWork()和来自服务器的数据。

我可能做错了什么?

代码如下:

工人阶级

public class WorkerClass extends Worker {

private Context context;
public static final String EXTRA_WORKER_CLASS = "extra_tag";

public SpecialOffer(@NonNull Context context, @NonNull WorkerParameters workerParams) {
    super(context, workerParams);
    this.context = context;
}

@NonNull
@Override
public Result doWork() {
    Log.d("WORKER_PERIOD", "started");
    String url = "https://sampleurl/get.php";
    //Volley synchronous call
    RequestFuture<String> future = RequestFuture.newFuture();
    StringRequest request = new StringRequest(url, future, future);
    MySingleton.getInstance(context).addToRequestQueue(request);

    try {
        String response …
Run Code Online (Sandbox Code Playgroud)

android android-architecture-components android-jetpack android-workmanager

6
推荐指数
1
解决办法
2605
查看次数