我的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谢谢,请看看这个。 –