私は以下のようにDAOを持っています。アーキテクチャのコンポーネントでデータベースの削除イベントを観察する方法
@Dao
public interface PostDAO {
@Query("SELECT * FROM posts order by time DESC")
LiveData<List<Post>> getPosts();
@Insert(onConflict = OnConflictStrategy.REPLACE)
@NonNull
void insert(Post... posts);
@Delete
void delete(Post post);
@Query("SELECT * FROM posts WHERE id = :id")
Post getPost(String id);
@Query("SELECT * FROM posts WHERE id = :id")
LiveData<Post> getPostLiveData(String id);
}
私は、次のような新しいデータを聞くことができると私は理解します。
postDAO().getPosts().observe(builder.getLifecycleOwner(), data::postValue)
投稿はいつ削除されたのですか?
あなたの答えを編集する前に、あなたはあなたがそのコメントを精緻化することができますか? – Raghunandan
あなたは何を意味するのか分かりません:-) DiffUtil(またはそのためのアンドロイドが提供するヘルパー)を使って変更をチェックするか、別のMutableLiveData <>を使って投稿された試行iveを使用して、かわった。ユースケースによって異なります。 「大きな」リストがある場合は、新しいLiveDataオブジェクトを使用するアプローチが最良の方法です。 –
setValue()よりも "DiffUtilルーチン"の使用を推奨するのは賢明ではないでしょうか?私はdata.setValue()を使用していますが、投稿では、何かが正しくないです。 – Relm