Don't do that.  Only open the database once.  If you are not using a content
provider, implement a singleton that takes care of opening the database once
for all code in your app.

And let me be clear -- there is NOTHING wrong with the content provider
never closing the database.  Nothing.  That is NO reason to avoid using a
content provider.  In fact it is a very good design approach, and if you
aren't using a content provider but directly accessing, I would recommend
using the exact same approach for the singleton implementation.

If you want to have a content provider *AND* also elsewhere do direct access
to the database, then implement your content provider on top of the
singleton that owns the database.

On Thu, Apr 7, 2011 at 10:39 AM, Nathan <critter...@crittermap.com> wrote:

>
> On Apr 7, 9:23 am, Dianne Hackborn <hack...@android.com> wrote:
> >
> > You should never open a database multiple times.
> >
>
> Let me make sure I understand this rule.
>
> It seems reasonable to pass an intent:
> + A path to a database
> + A key to find information in said database.
>
> Then the activity will create a list, form etc, after creating an
> SQLiteDatabase and then a cursor. It will then make sure that it
> closes the cursor and close the SQliteDatabase at the appropriate spot
> in its lifecycle.
>
> But if you have multiple activities, this would violate the rule about
> opening a database multiple times.
>
> You would pretty much have to have a static factory that keeps track
> of open databases in a hashtable, keyed by filename, with reference
> counting. Am I right?
>
> As has been noted in these forums, a ContentProvider *never* closes a
> database because is there is no call on its interface to do so. I
> haven't been using contentproviders but this seems bad, and will
> definitely leave red messages in your log.
>
>
> Nathan
>
> --
> 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

Reply via email to