为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

回首忆惘然 2024-01-05 14:36:35
我有一个工作人员服务来发送一些简单的通知。但现在,我想在发送之前检查数据库中的一些数据。但是,我不能在工作线程中使用观察者,它必须在主线程中。我有一个错误类型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 回答
  • 0 关注
  • 63 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信