我有一個(gè)工作人員服務(wù)來發(fā)送一些簡單的通知。但現(xiàn)在,我想在發(fā)送之前檢查數(shù)據(jù)庫中的一些數(shù)據(jù)。但是,我不能在工作線程中使用觀察者,它必須在主線程中。我有一個(gè)錯(cuò)誤類型java.lang.IllegalStateException: Cannot invoke observeForever on a background thread訪問房間數(shù)據(jù)庫數(shù)據(jù)的最佳解決方案是什么?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(); }}
添加回答
舉報(bào)
0/150
提交
取消