1

サポート ライブラリの標準の Android ContentProvider と CursorLoader を使用します。データベースで何が変更されたかに関する情報を取得するための最良の方法を探しています。

関数でカーソルを読み取って比較できることを知っています:

@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
}

しかし、すべてのレコードを読み取ることは、おそらく良い解決策ではありません。

この問題の良い解決策を知っていますか?

4

1 に答える 1

0

コンテンツプロバイダーを使用する場合は、CRUDメソッドを実装してデータベース内のアイテムを挿入、更新、削除、または取得することにより、基盤となるデータベースに加えられたすべての変更を抽象化します。

関心のあるメソッドからブロードキャストを送信すると、データベースに加えられた変更の通知を受け取ることができます。

この方法を使用して、更新サイクル中にデータベースに追加されたアイテムの数をカウントしたことを思い出します。

オプションで、変更されたアイテムのURIをインテントエクストラとして送信して、変更されたデータベース内の行への参照を取得できます。

さらに、グローバル変数を宣言して、これらのブロードキャストを有効または無効にして、関心のある状況でのみ発生させることができます。

于 2013-01-18T15:16:28.080 に答える