No, waiting on synchronized block or thread.wait blocks the waiting thread and only lets other threads run.
But, that synchronization doesn't sound good for a different reason, since you are blocking the UI thread, and that should not happen. One way around it is to make that cached data item available in the query used to populate the list, and fire off update requests to the worker thread as needed. Once the worker thread updates the cached item, the list should update automatically (since you mentioned that your data is in a content provider). You were saying something about buttons - how are you creating them, and mapping to the right data item? -- Kostya Vasilyev -- http://kmansoft.wordpress.com 09.02.2011 1:04 пользователь "ivan" <istas...@gmail.com> написал: > The only manipulation to the view object is via the non-overridden > ResourseCursorAdapter bindView() function. On occasion this function > will block for a couple seconds maximum if a drm data cache is > occurring in another thread, but that thread never touches the view > object. Maybe waiting on a synchronized block of code (in the UI > thread) to get values from the multi-threaded cache causes the UI > thread to wait, releasing cycles to the UI thread, which in turn > allows the misplaced event to occur? > > > > On Feb 8, 12:32 pm, Kostya Vasilyev <kmans...@gmail.com> wrote: >> Are you sure that you only touch the ListView and its adapter from the >> UI thread? >> >> -- Kostya >> >> 08.02.2011 22:11, ivan пишет: >> >> >> >> > Thanks for the reply. >> >> > The button events are -- nine times out of ten -- tied to the correct >> > data, but if you rapidly push a button you can throw an event that >> > will be tied to the wrong data. I thought that this didn't make sense >> > since everything should be occurring on the UI thread (right?). But >> > it appears that the event can sneak in before the screen is actually >> > refreshed. >> >> > On Feb 8, 11:24 am, Kostya Vasilyev<kmans...@gmail.com> wrote: >> >> If the button is linked to the wrong item, then you have a bug in your >> >> adapter's getView, where you're not properly associating the button with >> >> the item for the case where convertView != null. >> >> >> As for performance, I find it useful, when refreshing a ListView item in >> >> response to some event, to go through the visible list items, find the >> >> ones that are affected, and push new values into them right then and >> >> there, rather than calling notifyDataSetChanged / Invalidated. >> >> >> -- Kostya >> >> >> 08.02.2011 19:47, ivan пишет: >> >> >>> Anyone? >> >>> On Feb 7, 4:33 pm, ivan<istas...@gmail.com> wrote: >> >>>> I'm using a ResourceCursorAdapter to display a list of downloads from >> >>>> a ContentProvider that track's my application's downloads -- modeled >> >>>> after Android's DownloadProvider. >> >>>> The problem is that when a download is actively running it frequently >> >>>> calls bind view--every few seconds--to update a download progress bar, >> >>>> with a view object that is NOT currently associated with a given >> >>>> cursor position. Thus, bind view is constantly recycling and binding >> >>>> view objects to new item/cursor positions. >> >>>> This is especially a problem if the user attempts to push a button on >> >>>> one of the items while it's being bound to a different view object and >> >>>> cursor position, which results in an event being fired for the wrong >> >>>> data. >> >>>> Does anyone have advice on how to minimize unnecessary view recycling? >> >>>> It appears to only occur for the bottom and top list items (of the >> >>>> three on the screen), while the middle item remains tied to a single >> >>>> cursor and view object. >> >>>> Thanks, >> >>>> -Ivan >> >> -- >> >> Kostya Vasilyev -- WiFi Manager + pretty widget -- http://kmansoft.wordpress.com >> >> -- >> Kostya Vasilyev -- WiFi Manager + pretty widget -- http://kmansoft.wordpress.com > > -- > 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 -- 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