Java has several synchronization primitives.  Simplest would be to
have all accesses synchronized on the same object, or you could use a
Semaphore.

Likely the DB is never tied up for more than a second or so, so
there's not too much danger if you were to access from the main
thread.

On Feb 11, 5:35 pm, Julius Spencer <[email protected]> wrote:
> Hi Dan,
>
> Thanks for the reply.  This sounds like something worth trying; would I store 
> a boolean in the Application with synchronized accessors to determine whether 
> a write operation is occurring and then put some kind of wait around write 
> operations in a loop for the case where there is contention to keep trying 
> until it is successful?
>
> I guess I'd just have to be careful where the operations were taking place 
> that they were never on the main UI thread.
>
> Regards,
> Julius.
>
> On 12/02/2011, at 8:58 AM, DanH wrote:
>
> > SQLite implements its own locking protocol internally.  If you want
> > operations to wait rather than fail, you need to wrap operations from
> > both sources with your own synchronization primitives that wait rather
> > than fail.
>
> > On Feb 11, 1:34 pm, Julius Spencer <[email protected]> wrote:
> >> Hi,
>
> >> I have an IntentService which syncs data from a server and takes a few 
> >> minutes.  The operation is database intensive locally (SQLite).
>
> >> I would like the user to be able to continue to use the application while 
> >> the sync operation is going which involves the odd write to the database.
>
> >> Currently I'm getting "database is locked" errors.  Has anyone come across 
> >> this issue before and solved it?
>
> >> Regards,
> >> Julius.
>
> > --
> > 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 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