【问题标题】:Check if WorkManager status检查 WorkManager 状态
【发布时间】:2020-02-24 15:49:34
【问题描述】:

我用了这个例子:Check if WorkManager is scheduled already

但我的代码总是返回 false:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Log.d("DTAG", "scheduled: " + isWorkScheduled(WORKER_TAG));
    PeriodicWorkRequest.Builder myWorkBuilder = new PeriodicWorkRequest.Builder(FetchFeedWorker.class, 30, TimeUnit.MINUTES);
    PeriodicWorkRequest photoCheckWork = myWorkBuilder.build();
    WorkManager instance = WorkManager.getInstance();
    instance.enqueueUniquePeriodicWork(WORKER_TAG, ExistingPeriodicWorkPolicy.KEEP, photoCheckWork);
    Log.d("DTAG", "scheduled: " + isWorkScheduled(WORKER_TAG));
}


private boolean isWorkScheduled(String tag) {
    WorkManager instance = WorkManager.getInstance();
    ListenableFuture<List<WorkInfo>> statuses = instance.getWorkInfosByTag(tag);
    try {
        boolean running = false;
        List<WorkInfo> workInfoList = statuses.get();
        for (WorkInfo workInfo : workInfoList) {
            WorkInfo.State state = workInfo.getState();
            running = state == WorkInfo.State.RUNNING | state == WorkInfo.State.ENQUEUED;
        }
        return running;
    } catch (ExecutionException e) {
        e.printStackTrace();
        return false;
    } catch (InterruptedException e) {
        e.printStackTrace();
        return false;
    }
}

日志:

 2020-02-24 17:45:26.352 5841-5841/com.michlindevelopment.rssreader D/DTAG: scheduled: false
 2020-02-24 17:45:26.365 5841-5841/com.michlindevelopment.rssreader D/DTAG: scheduled: false

【问题讨论】:

  • Log.d("DTAG", "scheduled: " + isWorkScheduled(WORKER_TAG)); 在哪里?
  • 请多多指教....
  • 你的依赖是什么,你试过1.0.0-beta02吗?
  • "androidx.work:work-runtime:2.3.2" "androidx.work:work-runtime-ktx:2.3.2"

标签: android android-workmanager


【解决方案1】:

您通过一个唯一的名称排队,但通过一个(不存在的)标签查找它。请改用https://developer.android.com/reference/androidx/work/WorkManager#getWorkInfosForUniqueWork(java.lang.String)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多