gpt4 book ai didi

java - 观察 WorkManager Work 以获得完成的 Work 输出

转载 作者:行者123 更新时间:2023-12-01 16:14:20 28 4
gpt4 key购买 nike

我已经在 WorkManager 中加入了一个PeriodicWork,并希望每次完成时都获取它的 Worker 的输出数据,但以下代码似乎不起作用,因为 Log 消息没有出现在 Logcat 中:

    WorkManager.getInstance(getApplicationContext())
.getWorkInfoByIdLiveData(MyWork.getId())
.observe(this, new Observer<WorkInfo>() {
@Override
public void onChanged(@Nullable WorkInfo workInfo) {
Log.d("DEBUG", "onChanged()");
}
});

thislifeCycleOwner 相同吗?我已将 this 改为此位置,因为此处无法识别 lifeCycleOwner

基于thisthis .

更新:

我设法让观察者像这样工作:

        WorkManager.getInstance(getApplicationContext())
.getWorkInfosByTagLiveData(MY_WORK_TAG).
observeForever(new Observer<List<WorkInfo>>() {
@Override
public void onChanged(@Nullable List<WorkInfo> workInfos) {
Log.d("DEBUG", "onChanged()");
if (workInfos != null && (!(workInfos.isEmpty()))) {
for (WorkInfo wI: workInfos) {
if (wI.getState() == WorkInfo.State.RUNNING) {
\\ handle workinfo here
}
}
}
}
});

最佳答案

is this the same as lifeCycleOwner ? I have put this instead because lifeCycleOwner is not recognized here.

this 表示您调用代码的类。实际上,当您调用 getWorkInfoByIdLiveData 时,它会返回 LiveData 这意味着它应该在 Android 组件 中监听,例如 Activity , Fragment ...如果您的类没有实现 LifecycleOwner,您可以使用 observeForever 而不是 observe

关于java - 观察 WorkManager Work 以获得完成的 Work 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62443913/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com