android - ConcurrentModificationException in AsyncTask -
i have problem exception inside onpostexecute() method during loop. used foreach loop, read should use listiterator. hopelessly didn't fixed it. fragment of critical code:
public void search(final string query) { this.query = (!query.trim().isempty()) ? query : null; loaditemstask2 = new asynctask<void, void, void>() { @override protected void doinbackground(void... params) { ... } @override protected void onpostexecute(void result) { progress.setvisibility(view.gone); lview.setvisibility(view.visible); adapter.clear(); (listiterator<loyaltyprogramslistitem> iter = searchitems.listiterator(); iter.hasnext();) { loyaltyprogramslistitem si = iter.next(); adapter.add(si); } adapter.notifydatasetchanged(); } }; loaditemstask2.execute(); } exception throws in line:
for (listiterator<loyaltyprogramslistitem> iter = searchitems.listiterator(); iter.hasnext();) { logcat:
08-08 15:26:40.069 18277-18277/******* e/androidruntime: fatal exception: main java.util.concurrentmodificationexception @ java.util.abstractlist$simplelistiterator.next(abstractlist.java:64) @ pl.freebee.android.ui.fragments.loyaltyprogramslistfragment$4.onpostexecute(loyaltyprogramslistfragment.java:328) @ pl.freebee.android.ui.fragments.loyaltyprogramslistfragment$4.onpostexecute(loyaltyprogramslistfragment.java:289) @ android.os.asynctask.finish(asynctask.java:417) @ android.os.asynctask.access$300(asynctask.java:127) @ android.os.asynctask$internalhandler.handlemessage(asynctask.java:429) @ android.os.handler.dispatchmessage(handler.java:99) @ android.os.looper.loop(looper.java:123) @ android.app.activitythread.main(activitythread.java:3687) @ java.lang.reflect.method.invokenative(native method) @ java.lang.reflect.method.invoke(method.java:507) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:867) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:625) @ dalvik.system.nativestart.main(native method)
my solution: making copy of array before loop , inside loop operate on copy.
Comments
Post a Comment