The problem is that when you "hold the cursor open" the database is
locked.  That feature is not really applicable to a multi-threaded SQL
environment.

On Apr 7, 1:01 am, Evgeny Nacu <evgeny.n...@gmail.com> wrote:
> Hi again!
>
> DanH, I use thread synchronization. It works well.
> But, as I told in my first post, there are some problems:
>
> The biggest problem: I can't use Cursor for my ListAdapter and
> ExpandableListAdapter
> I've got to use something like ArrayAdapter, read all data from cursor
> to java objects at one time.
>
> But, as I understand, CursorAdapter works better cause it can hold
> cursor open and scroll through cursor and read data when needed
> It works faster for me.
>
> So, also, here is new exception I've got today.
> I retried to implement UI handling with Cursor. And I've got
> SQLiteException: database is locked: BEGIN EXCLUSIVE;
>
> Who knows how to handle it?
>
> On 2 апр, 01:51, DanH <danhi...@ieee.org> wrote:
>
> > A  content provider won't provide any function over what you have now
> > -- it's just a different way to accomplish the same synchronization.
> > WithSQLiteyou basically can't have two transactions going on at the
> > same time, so you must either use semaphores or some such to prevent
> > "collisions" or use a server (content provider) so that all the
> > accesses are through a single thread.
>
> > If you understand threads and thread synchronization/exclusion then
> > your way is probably more efficient and just as reliable.  If you
> > don't understand threads then the content provider technique is safer.
>
> > On Apr 1, 7:51 am, Evgeny Nacu <evgeny.n...@gmail.com> wrote:
>
> > > Thanks to everyone!
> > >   I've heard that ContentProviders do not have such problem. May be
> > > I'll try to use them, but I have many things to change.
> > > Thanks for the suggestion.
>
> > > Evgeny
>
> > > On 1 апр, 05:11, gjs <garyjamessi...@gmail.com> wrote:
>
> > > > Hi,
>
> > > > I (strongly?) suggest you wrap access to the sqlite3 database in a
> > > > Content Provider if you are accessing concurrently (doing both
> > > > read&write) from Activity & Service - particularly if Service is in
> > > > different process.
>
> > > > Content Provider seems to manage concurrent access for you ok, without
> > > > having to get involved with semaphores/synchronization yourself.
>
> > > > Regards
>
> > > > On Apr 1, 9:21 am, lbendlin <l...@bendlin.us> wrote:
>
> > > > > yes, semaphores are the way to go, especially for bulk write 
> > > > > operations. it
> > > > > helps if you read some of the data from the database into a buffer. 
> > > > > Then you
> > > > > can use the buffered data while the database update is processed, and 
> > > > > the
> > > > > users may not even notice.

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