RemoteViews 之内存泄漏

最近实现了一个自定义Notification功能,使用RemoteViews展示。由于该notification是个ongoing的类型,更新比较频繁,于是想当然的把RemoteViews缓存起来,每次重更新文本,图片。 功能一直正常,直到后来碰上TransactionTooLargeException,应用crash。分析代码发现不应该出现notification parcel size过大的情况。开始怀疑加载的图片过大, 但是这里使用的是RemoteViews,不会把图片内容直接传递。为了确认这个情况,最后发现,原来RemoteViews那一堆堆setXXX的方法,最后都是构造一个Action加入到一个list中,而这个list只加不减。问题找到!哎,重用RemoteViews不行,只能每次新构造。为什么RemoteViews不提供一个清除action list的方法呢?

猜你喜欢

转载自enuocm.iteye.com/blog/2363754