Won't this happen when the app dies and goes out of memory, and is
then restarted?

Kris


On Mon, Jul 29, 2013 at 8:00 PM, Nathan <[email protected]> wrote:
> Based on previous discussions of best practices here, I employ a factory
> method for opening SQLite Databases.
>
>     /**
>      * Factory method ensures only one instance of database in memory.
>      * @param path on external storage
>      * @return
>      */
>     static public SQLiteDatabase getInstance(String path)
>     {
>         try
>         {
>             if(alreadyOpened.containsKey(path))
>             {
>                 return alreadyOpened.get(path);
>             }
>
>             SQLiteDatabase tdb= SQLiteDatabase.openDatabase(path, null,
> SQLiteDatabase.OPEN_READWRITE |SQLiteDatabase.CREATE_IF_NECESSARY);
>
>             alreadyOpened.put(path, tdb);
>             return tdb;
>         }
>         catch(Exception ex)
>         {
>             Log.e("TileDatabase", "openExisting", ex);
>             return null;
>         }
>     }
>
> This ensures that an SQLiteDatabase is opened once and closed never, which
> Diane and others here said is a reasonable pattern.
>
> Nonetheless, I get some reports from some users that their data dissappears
> and reappears. In the morning it works, in the afternoon it is not
> available, and the next day it is back again.
>
> Ie, there is a query for blobs in this database and is either coming back
> with zero results or throwing a SQLiteException that I am handling and
> returning not available. If I manage to get logs from the users, I might
> know what exception it is.
>
> So in general, my question is this. Is there a reason that SQLiteDatabase
> object may become inneffective, due to some changes in the system or
> something I am doing, such as leaking a cursor or something? Could a
> terminated process, due to Android wanting more memory or a crash, cause me
> to be unable to open the database when the process starts again?
>
> Should I be calling SQLiteDatabase.isOpen periodically or anything like
> that?
>
> Nathan
>
> --
> --
> 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
> ---
> You received this message because you are subscribed to the Google Groups
> "Android Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

-- 
-- 
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
--- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to