android.widget.RemoteViews$ReflectionAction.writeToParcel(RemoteViews.java :763) 4.0.3和4.0.4版本

通知栏使用RemoteView是报的错


RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.notify_black_layout)

在给RemoteViews中的控件绑定相应的参数,比如给ImageView绑定图片资源id,TextView绑定字符串资源Id。

remoteViews.setImageViewBitmap(R.id.imageview1,R.drawable.icon_launcher);
remoteViews.setTextViewText(R.id.textview1,R.string.helloworld);


错误就是在绑定时出现的,而且有特定的情况:1.当你的Bitmap为null时

                                                                            2.当你的String为 “” 或者null时

                                                                            3.你的android版本是4.0.3,和4.0.4时

也就是说,如果你的通知栏是动态变化的,需要更新显示各种状态的,资源则是通过调用封装好的类来读取的,这时候就一定要注意了,返回的资源一定要判断是否为空,当然widget也用到了RemoteView同样需要注意。

如图:


点击more的时候可以更换更多的功能和app


如果你的android版本是4.1以上的,则不会出现上述的异常,读不到图片就是控件不显示图片而已,不会导致程序崩溃,在4.0.x的版本的小伙伴要格外的注意,这个bug我花了一天的时间测试出来的,排查起来有点费劲,4.0以下的没有用到就没有测试,如果有小伙伴测试了可以告知一下结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值