У меня есть служба Worker для отправки простого уведомления. Но теперь я хочу проверить некоторые данные из базы данных перед их отправкой.
Но я не могу использовать наблюдателя в рабочем потоке, он должен быть в основном потоке. У меня ошибка типа 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();
}
}