對於延遲10s執行的原因總結是:
UI線程被佔用,在執行某些東西;
可參考的排查原因:<關閉或者將要返回的界面中>
-
有動畫在執行或者控件的延時操作
-
有自定義view的ondraw()方法在執行,或者其他方法在執行,比如我遇到的,
A->B,B關閉返回A時,因爲倆個界面都有自定義view,在A界面的自定義view中調用了requestLayout();導致B界面在關閉時,其中的自定義view的onDraw()一直在執行,時間大概是10s.
3.自定義view使用了某些view自帶的屬性導致比如上面的代碼效果是是textview的drawleft設置的圖片和文字一起顯示在控件的中間,但是調用了箭頭的代碼,導致onDraw()方法一直執行,是因爲setpadding()調用了 invalidate();,持續10s左右
4.如果找不出具體哪裏在刷新UI,可以使用如下方式可能會有幫助:開發者模式中打開如下倆箇中的其中一個就可以,surface是這個界面都會刷新,GPU視圖更新相對可以具體到某個控件,比如那個WIFI圖標的背景色