关于recyclerview复用导致应用卡顿崩溃

简介: recyclerview复用导致应用卡顿崩溃

内容如题,对于recyclerview复用,各个开发者都有自己的见解。
而本次实战中,就是因为复用,导致的一个性能问题。

场景还原

recyclerview里面有个textview控件,textview使用了setspan方法设置了图片。然后滑动了累计几十个有图片的item后,应用卡死崩溃了。查看日志发现,到后面每次有新的图片进行setspan的时候,就会进行一个累加,到十几个以后,就累加了一次需要加载十几个图片。

带着这个问题,观察思考。

最后发现是textview的recyclerview回收的时候,里面的span内容没有进行回收导致的。使用一下代码可以解决问题。
onBindViewHolder中,调用textview的
getEditable.clearspan()
getEditable.clear()
setText(null)
即可解决问题。原理是在每次加载的时候,都先清空textview原来的缓存信息,然后再更新数据。

that's all------------------------------------------------------------------------------------

目录
相关文章
|
5月前
|
缓存
fragment卡顿 的处理
fragment卡顿 的处理
41 2
|
算法 API 开发工具
拒绝手动Notifydatasetchanged(),使用ListAdapter高效完成RecyclerView刷新
拒绝手动Notifydatasetchanged(),使用ListAdapter高效完成RecyclerView刷新
185 0
|
XML 存储 缓存
RecyclerView 性能优化 | 把加载表项耗时减半 (一)
RecyclerView 性能优化 | 把加载表项耗时减半 (一)
10977 0
|
XML 存储 缓存
RecyclerView 性能优化 | 把加载表项耗时减半 (三)(下)
RecyclerView 性能优化 | 把加载表项耗时减半 (三)
125 0
|
XML 前端开发 数据格式
RecyclerView 性能优化 | 把加载表项耗时减半 (三)
RecyclerView 性能优化 | 把加载表项耗时减半 (三)
145 0
|
XML 存储 缓存
RecyclerView 性能优化 | 把加载表项耗时减半 (二)
RecyclerView 性能优化 | 把加载表项耗时减半 (二)
221 0
|
存储 缓存 Java
RecyclerView 性能优化 | 是什么在破坏缓存机制?
RecyclerView 性能优化 | 是什么在破坏缓存机制?
164 0
|
消息中间件 Android开发
读源码长知识 | Android卡顿真的是因为”掉帧“?
掉帧是因为生产帧速度跟不上消费帧速度。Choreographer 用于同步生产和消费帧的速度。以读源码方式还原掉帧时软件层面发生的事情。
259 0
|
Java 大数据 数据库
Activity卡顿、变慢的原因
Activity卡顿、变慢的原因
|
监控 Java Shell
Android卡顿优化 | 卡顿单点问题监测方案
Android卡顿优化 | 卡顿单点问题监测方案