I use
synchronized(ExampleDbAdapter.class){mDb.insert/update/delete/query...} in
ExampleDbAdapter to avoid this. Let me know if there's a better way.

On Mon, Aug 24, 2009 at 10:58 AM, Armond Avanes <armond...@yahoo.com> wrote:

>
> So how can I create an in-memory database? I just took a quick look at the
> API and couldn't find any.
>
> Cheersss,
> Armond
>
> > develop...@googlegroups.com] On Behalf Of Andrei
> > Sent: Monday, August 24, 2009 7:35 AM
> >
> > If your write time take long i would try this
> > I would create another in memory database, attach it to yours.
> > In memory database table would have same schema.
> > You would write to in memory database and after done do insert into
> > db1.table as select * from db2.table
> > I did something similar but on desktop not phone and of course you
> > need to wait for lock to clear
> >
> > On Aug 23, 2:31 am, "Armond Avanes" <armond...@yahoo.com> wrote:
> > > I forgot to mention that this exception happens (so far) from the
> > service I
> > > have for updating database (is executed every 24 hours).
> > >
> > > Cheersss,
> > > Armond
> > >
> > > > Hi Guys,
> > >
> > > > I have different background threads in my application, one doing
> > > > periodical
> > > > database updates, another responsible for doing long searches and so.
> > > > Obviously some are just reading from database while others are
> writing
> > as
> > > > well.
> > >
> > > > Once in a while I get "database is locked" exception. I need to know
> > the
> > > > safe way of reading/writing from/to database on different threads.
> > >
> > > > As well I've found "isDbLockedByCurrentThread()" and
> > > > "isDbLockedByOtherThreads()" methods on SQLiteDatabase. Should I use
> > them
> > > > every time I want to access the database? What if the database is
> > locked?
> > > > Should I pause the current thread and retry a few milliseconds later?
> > >
> > > > Best Regards,
> > > > Armond
> > >
> > > > 08-23 10:17:32.029 E/AndroidRuntime( 1331): Caused by:
> > > > android.database.sqlite.SQLiteException: error code 5: database is
> > locked
> > >
> > > > 08-23 10:17:32.029 E/AndroidRuntime( 1331):     at
> > > > android.database.sqlite.SQLiteStatement.native_execute(Native Method)
> > >
> > > > 08-23 10:17:32.029 E/AndroidRuntime( 1331):     at
> > > >
> > android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:66)
> > >
> > > > 08-23 10:17:32.029 E/AndroidRuntime( 1331):     at
> > > >
> > android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1534)
> > >
> > > > 08-23 10:17:32.029 E/AndroidRuntime( 1331):     at
> > > > com.test.db.TestDao.update (TestDao.java:327)
> > >
> > > > 08-23 10:17:32.029 E/AndroidRuntime( 1331):     at
> > > > com.test.UpdateService.onStart(UpdateService.java:35)
> > >
> > > > 08-23 10:17:32.029 E/AndroidRuntime( 1331):     at
> > > >
> android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2557)
> > >
> > > > 08-23 10:17:32.029 E/AndroidRuntime( 1331):     . 10 more
> >
>
> >
>

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