A content provider is created when its hosting process is created, and
remains around for as long as the process does, so there is no need to close
the database -- it will get closed as part of the kernel cleaning up the
process's resources when the process is killed.

On Fri, Aug 21, 2009 at 2:02 AM, S. Mccoy <[email protected]> wrote:

>
> Hi,
>
>  With an Activity there is no problem, the lifecycle is clear and we
> have to realease all the resources in that method. The problem is that
> I use this helper inside a ContentProvider. In this case there is
> neither clear lifecycle (almost for me) nor a “close()” or “onDestroy
> ()” method where release the resources.
>
> S.
>
>
> On 21 ago, 09:54, jiaoni <[email protected]> wrote:
> > Hi S,
> >
> > I use a DBHelper class which extends the SQLiteOpenHelper class, and I
> > close it in the onDestroy() function of the Activity class.
> >
> > Jiaoni
> >
> > On Aug 21, 3:15 pm, "S. Mccoy" <[email protected]> wrote:
> >
> > > Hi all,
> >
> > > I have seen that if we use an AbstractSyncableContentProvider (other
> > > providers like ContactProvider use it), a “close()” method is
> > > implemented:
> > > public void close(){
> > >     if(mOpenHelper != null)
> > >         mOpenHelper.close();}
> >
> > > In this case, the helper seems to be closed (and also de DB), the same
> > > helper that remains open in a ContentProvider. I can’t understand the
> > > lifecycle of the ContentProvider without a method to release all the
> > > things. Any ideas ?.-Thanks in advance.
> >
> > > S.
> >
> > > On 18 ago, 18:00, "S. Mccoy" <[email protected]> wrote:
> >
> > > > Maybe it’s an easy question, but I’ve tried to understand why all the
> > > > content providers seem not to close the DB that they use. In the
> > > > NotePadProvider example (in other providers is similar), it’s used a
> > > > Helper to manage the DB (that extends of SQLiteOpenHelper). This
> > > > helper has a method to close the DB (http://developer.android.com/
> > > > reference/android/database/sqlite/SQLiteOpenHelper.html#close%28%29),
> > > > but in all the providers that I have seen (even in the example), this
> > > > method is never used.
> >
> > > > For example, in the query method of the NotPadProvider we use the
> > > > helper to open a DB
> >
> > > > // Get the database and run the query         SQLiteDatabase db =
> > > > mOpenHelper.getReadableDatabase();         Cursor c = qb.query(db,
> > > > projection, selection, selectionArgs, null, null,
> > > > orderBy);          // Tell the cursor what uri to watch, so it knows
> > > > when its source data changes         c.setNotificationUri(getContext
> > > > ().getContentResolver(), uri);         return c;
> >
> > > > the mOpenHelper is create in the “onCreate()” method, but there is no
> > > > reference to a mOpenHelper.close() in all the provider (maybe because
> > > > there is no “close()” method in ContentProvider).
> >
> > > > Do we need to close the SQLiteOpenHelper object? When we use it
> inside
> > > > a ContentProvider, where is the right place to close it?
> >
> > > > Thanks in advance.
> > > > S.
> >
>


-- 
Dianne Hackborn
Android framework engineer
[email protected]

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