我的Android應用程序有它要求從Facebook MessageThreads對象列表的IntentService,解析JSON響應打造的對象的ArrayList:在再次ConcurrentModificationException的崩潰我的應用程序
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
和應用程序forcloses。我無法在什麼條件下進行隔離。我讀了關於這個Exception
,據我瞭解,當我們從ArrayList
中刪除項目時,它會發生,但我不會從列表中刪除項目。任何指針來幫助解決這個問題,我們非常感謝。
@Pierre你可能想要用戶迭代器來避免這個問題 – nhaarman
@Niek謝謝,請看看這個。 –