我已经看过WorkManager的codelab以及这里的一些例子,但是我看到的代码中的所有内容都与在设备上本地工作或上传到服务器有关,而不是下载数据和响应收到的数据.在开发人员指南中,它甚至说,"例如,一个应用程序可能需要不时地从网络上下载新资源",所以我认为这对于这项任务来说是完美的.我的问题是,如果WorkManager可以处理以下场景,如果没有,那么处理它的正确工具是什么:
我的worker类看起来像这样:
public class MyWorker extends Worker {
@NonNull
@Override
public WorkerResult doWork() {
lookForNewData();
return WorkerResult.SUCCESS;
}
public void lookForNewData() {
MutableLiveData<MyObject> liveData = new MutableLiveData<>();
liveData.observe(lifeCycleOwner, results -> {
notifyOnNewData(results);
})
APILayer.getInstance().fetchData(searchParams, liveData)
}
Run Code Online (Sandbox Code Playgroud)
我的问题当然是LiveData对象无法观察,因为没有活动或片段可以作为其LifecycleOwner.但即使我使用来自API的回调来响应到达的数据,我的工作人员已经发布它是成功的,它可能不会继续回调,对吧?所以我知道这种方法是完全错误的,但是我看不到任何使用WorkManager获取数据的代码
请帮助一个正确的解决方案和一些示例代码或一些链接,如果它可以处理这种工作或其他更合适的话,可以使用WorkManager.