爲什麼Activity 的 onStop ,onDestory延遲 10s 才執行

對於延遲10s執行的原因總結是:
UI線程被佔用,在執行某些東西;

可參考的排查原因:<關閉或者將要返回的界面中>

  1. 有動畫在執行或者控件的延時操作

  2. 有自定義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圖標的背景色
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章