I'm getting an unhandled exception in my class that fills an
arrayadapter from items in a database:
10-11 04:05:26.883: ERROR/AndroidRuntime(886):
java.lang.IllegalStateException:
The content of the adapter has changed but ListView did not
receive a notification. Make sure the content of your
adapter is not modified from a background thread, but only from the UI
thread.
At the end of my OnCreate method I fire off a background thread:
Thread thread = new Thread(null, doSearchDatabase,
"Background");
thread.start();
I fill the array list in the run method of the thread, and use a
handler to post a message
at the end of the processing:
hh.post(postdoSearchDatabase);
In the run method of the handler, which I presume is a UIThread, I do:
Collections.sort(myArrayList);
aa.notifyDataSetChanged();
Here I do let the array adapter know things have changed.
Does this exception always mean I'm doing something wrong with the
array adapter in a background
thread? I don't seem to be manipulating it at all in the background
thread; only the array list it is
connected to.
Any ideas? the exception isn't thrown every time, and if I step slowly
through in the debugger it is not
thrown. Seems FAR worse running in Android 1.6.
thanks,
pawpaw17
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---