项目场景:
起因仍然是测试在测试的时候突然发现某个页面进去之后就会点不动,而且只在华为机型上出现,别的机型并没有,于是就去看这个问题。
首先发生场景是在MainActivity的几个Fragment中的一个Fragment,切到这个Fragment过一会就会点不动,发生ANR。这个Fragment中就两个Viewpager,几个Recyclerview,唯一会动的就一个LottieAnimationView和一个会自动滑动的Viewpager,看上去属实平平无奇不应该发生什么问题。
原因分析:
当然出现了ANR当然应该去看ANR日志,拉下来看了一眼
suspend all histogram: Sum: 6.224ms 99% C.I. 1us-976us Avg: 103.733us Max: 1103us
DALVIK THREADS (117):
"main" prio=5 tid=1 Runnable
| group="main" sCount=0 dsCount=0 flags=0 obj=0x7273a460 self=0xf2879e00
| sysTid=25732 nice=-10 cgrp=default sched=0/0 handle=0xf2cc1fc0
| state=R schedstat=( 97308911422 362895304 29172 ) utm=9242 stm=488 core=4 HZ=100
| stack=0xff6d7000-0xff6d9000 stackSize=8192KB
| held mutexes= "mutator lock"(shared held)
at android.os.MessageQueue.enqueueMessage(MessageQueue.java:656)
- locked <0x04c8bdba> (a android.os.MessageQueue)
at android.os.Handler.enqueueMessage(Handler.java:771)
at android.os.Handler.sendMessageAtTime(Handler.java:717)
at android.view.ViewRootImpl$ViewRootHandler.sendMessageAtTime(ViewRootImpl.java:4929)
at android.os.Handler.sendMessageDelayed(Handler.java:687)
at android.os.Handler.post(Handler.java:416)
at android.view.View.post(View.java:18105)
at android.widget.Editor$2.onDraw(Editor.java:251)
at android.view.ViewTreeObserver.dispatchOnDraw(ViewTreeObserver.java:113