So internally RemoteViews is simply a set of actions that are "serialized" and sent to another process. Each time you make a call to something like setDouble(), you're adding an additional action to RemoteViews' internal list.
Because there isn't a way of clearing these actions from a RemoteViews object, all of your successive setImageViewBitmap() calls, along with their Bitmaps, remain in the internal list, and are actually "serialized" and applied each time your send it. :( In this case it's best to just create a new RemoteViews object every time. j On Thu, May 21, 2009 at 2:03 PM, Michael Elsdörfer <[email protected]> wrote: > > I'm writing a widget. Currently, I'm have a simple ImageView, and > calling RemoteViews.setImageViewBitmap(). I'm using a service to do > the updates. > > I thought it might be a good idea to reuse an existing RemoteViews > instance, so I'm only querying it the first time around, and > subsequently simply call setImageViewBitmap() with the new image. > > This works well initially, but after some time I first start getting > "!!! FAILED BINDER TRANSACTION !!!" errors, and later, an OutOfMemory > exception. > > Simply creating a new RemoveViews instance every time works flawlessy > on the other hand. I'm just curios why that would be, any ideas? > > > -- Jeff Sharkey [email protected] --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---

