gpt4 book ai didi

java - 在工作人员中使用 Livedata 观察者

转载 作者:行者123 更新时间:2023-12-01 22:22:32 27 4
gpt4 key购买 nike

我有一个工作人员服务来发送一些简单的通知。但现在,我想在发送之前检查数据库中的一些数据。

但是,我不能在工作线程中使用观察者,它必须在主线程中。我有一个错误类型 java.lang.IllegalStateException: Cannot invokeobserveForever on a后台线程

访问我的房间数据库数据的最佳解决方案是什么?

public class NotificationWorker extends Worker {

FavoriteRepository favoriteRepository;

public NotificationWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
super(context, workerParams);
favoriteRepository = new FavoriteRepository(((MainApplication) context.getApplicationContext()));
}

@NonNull
@Override
public Result doWork() {

favoriteRepository.getAllFavorites().observeForever(new Observer<List<Favorite>>() {
@Override
public void onChanged(List<Favorite> favorites) {
// get data
}
});
showNotification("WorkManager", "Content of message");
return Result.success();
}
}

最佳答案

经过一些研究,我可以找到如何使用 ListenableWorker 在 WorkManager 中异步执行工作。

关于java - 在工作人员中使用 Livedata 观察者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58580709/

27 4 0