更新大量部件的位图时避免失败粘结剂事务错误 [英] Avoiding FAILED BINDER TRANSACTION error when updating lots of widget bitmaps

查看:141
本文介绍了更新大量部件的位图时避免失败粘结剂事务错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对面的错误来了,当我更新我的RemoteViews在我AppWidget。

  

.. !!!失败粘结剂交易!

这是造成的,因为所有的改变RemoteViews被序列(如SETINT和setImageViewBitmap)。位图也被序列化到内部包。不幸的是这种捆绑有一个非常小的大小限制。

我不能使用setImageResource,因为我希望能允许用户下载外观的部件。

谁能推荐一个解决这一问题?我已经使用了插件的每个实例一个新RemoteViews对象,但一个实例包含太多的更新。

谢谢!

解决方案

最好的解决方法,我发现是使用 setImageURI ImageView的使用对象

  remoteViews.setUri(R.id.myImageView,setImageURI,文件://blahblahblah.png);
 

下面是从 Android开发组 <充分讨论/ P>

I am coming across an error when I am updating my RemoteViews in my AppWidget.

.. !!! FAILED BINDER TRANSACTION !!!

This is caused because all the changes to the RemoteViews are serialised (e.g. setInt and setImageViewBitmap ). The bitmaps are also serialised into an internal bundle. Unfortunately this bundle has a very small size limit.

I cannot use setImageResource as I am hoping to allow the user to download skins for the widget.

Can anyone recommend a workaround for this problem? I am already using a "new" RemoteViews object for each instance of the widget, but a single instance contains too many updates.

Thanks!

解决方案

The best workaround I found was to use setImageURI on the ImageView objects using

remoteViews.setUri(R.id.myImageView, "setImageURI", "file://blahblahblah.png");

Here is the full discussion from Android Developers group

这篇关于更新大量部件的位图时避免失败粘结剂事务错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆