たとえば、sqliteトリガーを使用して登録されたコールバックメソッドが必要です。
public void printLog(){
Log.i("TAG","1 row added");
}
このメソッドは、sqlite に任意の行を挿入した後に呼び出します。
出来ますか?
どうやってするか?
SQLite はデータ変更通知コールバックを提供します。Android がそれらを直接公開しているとは思いませんが、たとえば、いくつかの変更通知を提供する CursorAdapter があります。
getContentResolver().registerContentObserverも使用できますが、残念ながら、どのような変更が行われたかはわかりません。削除、挿入、または更新の可能性があります。
DB とやり取りする ContentProvider を制御する場合は、インテントを起動するか、getContentResolver().notifyChangeを使用して、テーブルとアクションの両方を識別する特別な Uri 通知を送信できます。通知に使用できる Uri の例: content://my-authority/change/table-name/insert
しかし、その場合でも、どの行が変更の影響を受けたか正確にはわかりません。
変更ログ テーブルに書き込むトリガーは、発生元に関係なくすべての変更を確実に通知し、発生した正確な ID とアクションを知ることができるようです。残念ながら、挿入/更新/削除が遅くなることを意味し、変更を処理および削除するには、おそらく何らかのサービスが必要であることを意味します。
これらがより良い解決策であるかどうか聞いてみたいです!
コンテンツオブザーバーを設定できます。このリンクは、コンテンツへの変更に対するコールバックを受け取るのに役立ちます