小さなコンテンツ プロバイダーを作成しました (これは、db テーブルをクエリして値を取得するためだけに使用します)。プロバイダが正常に動作することを確認しました。
テーブルの値は、通常の sql 挿入 (コンテンツ プロバイダーではなく) を介して定期的に更新されます。
上記のように通常の sqlite 操作で挿入/更新または削除が発生するたびに、コンテンツ プロバイダーと通信するために作成されたコンテンツ リゾルバーに通知する必要があります。このリゾルバーは、データベースのクエリを実行し、いくつかの値をフェッチするためだけにコンテンツ プロバイダーと通信します。
これは可能ですか?はいの場合、何をする必要がありますか?
どんな助けでも大歓迎です。
私のDB挿入メソッドを含めるように編集しました:
public void insert(ArrayList<Integer> profileValues, String tableName){
String duplicationCheck = " WHERE NOT EXISTS (SELECT 1 FROM profiles WHERE devID = "+"'"+profileValues.get(0)+"'"+");";
if(tableName.equals(PROFILES_TABLE)){
profilesDB.execSQL("INSERT INTO " +
PROFILES_TABLE +
"(devID,alert,findme,proximity,timep,conn_status) SELECT "+"'"+profileValues.get(0)+"'"+","+profileValues.get(1)+","+profileValues.get(2)+","+profileValues.get(3)+","+profileValues.get(4)+","+profileValues.get(5)+duplicationCheck);
}
getContentResolver().notifyChange(MY_CONTENT_URI, null);
}