问题现象
在现有app中搜索界面增加了一个功能后,反复操作,大概率出现黑屏,应用卡死。
分析
到处anr日志,但是仍然没有看到什么有用的信息。
和修改前的功能进行对比,最终找到了问题点。
功能实现背景说明
我需要显示一个悬浮弹框,这个还需要定时关闭;
如果新来消息,还需要复用这个弹框,就需要取消之前的定时关闭。
实现定时关闭:
view.postDelayed({hideView()}, 10000)
清除之前的定时:
view?.handler?.removeCallbacksAndMessages(null)
问题点就出在上面removeCallbacksAndMessages。
推测
这个是跟场景有关系的,因为我是在搜索界面,当点击搜索后,触发上面显示弹框的操作,还会触发关闭软键盘。
推测removeCallbacksAndMessages会清空所有消息,同时又有其他消息需要加入其中,中间出现了死锁。
只是推测,未作完整深究。
网友评论