2

たとえば、sqliteトリガーを使用して登録されたコールバックメソッドが必要です。

public void printLog(){
 Log.i("TAG","1 row added");
}

このメソッドは、sqlite に任意の行を挿入した後に呼び出します。

出来ますか?

どうやってするか?

4

2 に答える 2

1

SQLite はデータ変更通知コールバックを提供します。Android がそれらを直接公開しているとは思いませんが、たとえば、いくつかの変更通知を提供する CursorAdapter があります。

getContentResolver().registerContentObserverも使用できますが、残念ながら、どのような変更が行われたかはわかりません。削除、挿入、または更新の可能性があります。

DB とやり取りする ContentProvider を制御する場合は、インテントを起動するか、getContentResolver().notifyChangeを使用して、テーブルとアクションの両方を識別する特別な Uri 通知を送信できます。通知に使用できる Uri の例: content://my-authority/change/table-name/insert

しかし、その場合でも、どの行が変更の影響を受けたか正確にはわかりません。

変更ログ テーブルに書き込むトリガーは、発生元に関係なくすべての変更を確実に通知し、発生した正確な ID とアクションを知ることができるようです。残念ながら、挿入/更新/削除が遅くなることを意味し、変更を処理および削除するには、おそらく何らかのサービスが必要であることを意味します。

これらがより良い解決策であるかどうか聞いてみたいです!

于 2013-03-07T10:45:12.450 に答える
0

コンテンツオブザーバーを設定できます。このリンクは、コンテンツへの変更に対するコールバックを受け取るのに役立ちます

于 2013-03-07T10:44:05.110 に答える