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 <jiaoni5...@gmail.com> 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" <mccoy.sher...@gmail.com> 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" <mccoy.sher...@gmail.com> 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.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to