Disregard, I found the issue.

If in your MediaDbAdapter call you get a Cursor check for null
etc..then pass it and close it from another class then the one in
MediaDbAdapter does not get closed, until the system does it for you.

I changed it to pass the cursor directly from the call and deal with
it in the class that called it instead and it worked, no more errors.

On Jun 18, 8:43 am, gcstang <[email protected]> wrote:
> Even with that I still get this error:
>
> INFO/dalvikvm(23250): Uncaught exception thrown by finalizer (will be
> discarded):
> INFO/dalvikvm(23250): Ljava/lang/IllegalStateException;: Finalizing
> cursor android.database.sqlite.sqlitecur...@44887dc8 on media that has
> not been deactivated or closed
> INFO/dalvikvm(23250):     at
> android.database.sqlite.SQLiteCursor.finalize(SQLiteCursor.java:596)
> INFO/dalvikvm(23250):     at dalvik.system.NativeStart.run(Native
> Method)
>
> I don't know how to get rid of this, I've looked everywhere I can
> think of for a solution.
>
> On Jun 18, 3:44 am, Moss <[email protected]> wrote:
>
>
>
> > I always do like this:
>
> > MediaDbAdapter mDbHelper = null;
> > Cursor c = null;
>
> > try {
> >   // Do you DB stuff} catch( Exception e) {
>
> >   // Something went wrong
>
> > }
>
> > // Close and cleanup
> > if ( c != null )
> > {
> >   // You do not need to deactivate the cursor
> >   c.close();}
>
> > if(mDbHelper != null && mDbHelper.isOpen())
> > {
> >   mDbHelper.close();
>
> > }
>
> > On Jun 17, 10:31 pm, gcstang <[email protected]> wrote:
>
> > > I've followed the try/finally approach but still get this error.
>
> > > Is there anything else that can be done?
>
> > > Here is what I have.
>
> > > MediaDbAdapter mDbHelper = null;
> > > Cursor c = null;
> > > try {
> > >         mDbHelper = new MediaDbAdapter(ctxt);
> > >         mDbHelper.open();
> > >         c = mDbHelper.findByX(data.getX());
> > >         if(c != null) {
> > >            //Do an Update on the database
> > >         }
> > >         else if(c == null) {
> > >           //Do an Insert on the database
> > >         }} finally {
>
> > >                         if(c != null) {
> > >                                 c.deactivate();
> > >                                 c.close();
> > >                                 c = null;
> > >                         }
> > >                         if(mDbHelper != null && mDbHelper.isOpen()) {
> > >                                 mDbHelper.close();
> > >                         }
> > >                 }

-- 
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

Reply via email to