Consider using loaders, for example: http://developer.android.com/resources/samples/Support4Demos/src/com/example/android/supportv4/app/LoaderCursorSupport.html
On Fri, Jul 29, 2011 at 9:23 AM, Julius Spencer <jul...@msa.co.nz> wrote: > Hi, > > I have been trying to take database reads off the UI thread and am > currently using an AsyncTask, however I am running into trouble swapping out > an updated Cursor for a new one in the adapter. > (I was previously using requery() on the Cursor which had to be on the main > UI thread) > > The documentation regarding requery() says: > "Just request a new cursor, so you can do this asynchronously and update > your list view once the new cursor comes back." > > If I update the existing Cursor (mCursor) with the results from a new query > and do the following in onPostExecute of an AsyncTask: > > mAdapter.changeCursor(mCursor); > > it works pretty well on a Nexus 1. On other devices I am getting errors > because I haven't closed the old Cursor. > (java/lang/IllegalStateException;: Finalizing cursor > android.database.sqlite.SQLiteCursor on null that has not been deactivated > or closed) > > I have tried creating a new Cursor and swapping the Cursors out like so: > > if(null!=mArtists) > mCursor.close(); > mArtists = newCursor; > > but I get performance issues and the view of the list goes back to the top. > > Has anyone got any ideas on this? Alternatively does anyone have or know > of any documentation for using a CursorLoader against a SQLiteDatabase > rather than a ContentProvider? > > Thanks for any help. > > Regards, > Julius. > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to android-developers@googlegroups.com > To unsubscribe from this group, send email to > android-developers+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > -- Dianne Hackborn Android framework engineer hack...@android.com Note: please don't send private questions to me, as I don't have time to provide private support, and so won't reply to such e-mails. All such questions should be posted on public forums, where I and others can see and answer them. -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en