この質問は、Content Resolver vs Cursor Loader の質問からのフォローアップです。回答には、 Content Resolver を使用して sqlite Db にレコードを挿入する方法が明確に記載されています。私の質問は次のとおりです。
- この機能を実装するためにローダー (通常のローダー) を使用できますか?
例:
public Loader<Cursor> onCreateLoader(int id, Bundle bundle) {
switch (id) {
case AppConstants.LOADER_ADD_FAV_PHONE_NUM:
ContentValues values = new ContentValues();
values.put(DBHelper.TM_DB_COLUMN_PHONE_NUMBER,
directionOrder);
values.put(TransitMeDBHelper.TM_DB_COLUMN_NAME_ID, selectionArgs[0]);
Uri insertFavStop =getContentResolver().insert(TransitMeContentProvider.CONTENT_URI_INSERT_FAV_PHONE,
values);
break;
}
return null;
}
これにより、メイン UI スレッドまたはワーカー Thread で機能が実行されますか。コンテンツ リゾルバは data を含むカーソルの代わりに URI を返すため、これに対するコールバックを受信しないことを理解しています。
このコードを実行してみましたが、動作がおかしいです..重複した挿入が記録され、一貫性がありません.ローダーを使用して挿入操作を行う適切なリソースを誰かに教えてもらえますか(クエリの例で多くの例を見てきましたが、動作します魔法のように :) )
ありがとうございました。