I... HATE... DatabaseObjectNotClosedExceptions. These are abstract Activity classes I created to help with Cursor and Database object states.

The standard "startManagingCursor()" method hasn't worked well with some implementations before, so I created this.

ManagedActivity closes and re-opens Database objects and Cursors for you, and ManagedListActivity adds to that by maintaining the scroll position when you navigate away and return. This isn't an end-all-be-all solution, it's just one that's worked for me. Hopefully it'll work for you too.