Я пытался найти способ уведомить текущих активных наблюдателей, если данные в базе данных комнаты изменились. Все мои данные помещаются в объекты-наблюдатели LiveData, а затем к ним прикрепляется наблюдатель.
Это один из базовых Daos.
@Dao
public interface SubcategoryDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insertSubcategory(Subcategory... subcategories);
@Query("SELECT * FROM subcategory_table")
LiveData<List<Subcategory>> getAllSubcategories();
@Query("SELECT * FROM subcategory_table WHERE category_id=:catId")
LiveData<List<Subcategory>> getAllSubcategoriesForCategory(int catId);
@Query("SELECT id FROM subcategory_table WHERE title=:title")
LiveData<Integer> getSubcategoryIdByTitle(String title);
@Query("SELECT * FROM subcategory_table WHERE title=:title")
LiveData<Subcategory> getSubcategoryByTitle(String title);
}
Я получаю строковые запросы SQL с сервера, и затем единственный способ выполнить их в соответствии с документацией это:
AppDatabase.getInstance(activity)
.getOpenHelper()
.getWritableDatabase()
.execSQL(sqlQuery);
Так как мне заставить его работать с наблюдателями? Как я могу уведомить или сделать недействительным их, чтобы перезагрузить интерфейс?