私の Android アプリには、Facebook から MessageThreads オブジェクトのリストを要求する IntentService があり、JSON 応答を解析してオブジェクトの ArrayList を構築します。
ArrayList<MessageThread> mMessageThreads = new ArrayList<MessageThread>();
次に、同じサービスで FB を再度呼び出し、MessageThread ID の名前を取得して、それらを MessageThread オブジェクトと照合します。この時点で、完全な MessageThread オブジェクトを含む ArrayList があり、それらを SQLite データベースに挿入します。
// save to db and broadcast
for (MessageThread message : mMessageThreads) {
((FBClientApplication)getApplication()).getMessagesData().insertOrIgnore(message.toContentValues();
}
どこ:
public void insertOrIgnore(ContentValues values) {
SQLiteDatabase db = this.dbHelper.getWritableDatabase();
db.insertWithOnConflict(TABLE, null, values, SQLiteDatabase.CONFLICT_IGNORE);
}
ACRA レポートを介して、断続的にラインが表示されます
for (MessageThread message : mMessageThreads)
をスローしConcurrentModificationException
、アプリを閉じます。どのような条件で隔離できなかったのか。私はこれについて読みましたが、繰り返し処理中にException
アイテムを削除すると発生することを理解していますが、リストからアイテムを削除していません。ArrayList
この問題を解決するためのポインタは大歓迎です。