Excuse me, I misspoke... Let me correct: The only manipulation to the view is via the OVERRIDDEN ResourceCursorAdapter bindView() function.
On Feb 8, 3:03 pm, ivan <[email protected]> wrote: > 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 <[email protected]> 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<[email protected]> 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<[email protected]> 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 [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

