我有一个工作人员服务来发送一些简单的通知。但现在,我想在发送之前检查数据库中的一些数据。但是,我不能在工作线程中使用观察者,它必须在主线程中。我有一个错误类型java.lang.IllegalStateException: Cannot invoke observeForever on a background thread访问房间数据库数据的最佳解决方案是什么?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(); }}
添加回答
举报
0/150
提交
取消