activity和fragment的生命週期

網站上關於activity和fragment的生命週期非常多,這裏就不做過多的介紹。附上一張個人認爲非常清晰的生命週期的圖片(網上有很多類似的,個人喜好這張)
這裏寫圖片描述

關於生命週期,在很多面試中,也是衆多面試官喜歡問的問題。
想要將一個app做好,activity和fragment的生命週期必須非常清楚。
下面簡單介紹下生命週期中常見的部分:

關於activity:
一般onCreate()、onResume()、onDestroy()三個方法用的最多。
onCreate():大部分的控件代碼,如findViewById()方法(推薦ButterKnife),一些需要在顯示在加載的代碼。
onResume():顧名思義,需要恢復的一些代碼,比如http的後臺刷新之類的。
onDestroy():一般用於廣播、緩存圖片、static對象或方法等特殊對象的銷燬。

關於fragment:
生命週期跟activity很像,不做過多介紹,
額外說下setUserVisibleHint這個方法,如果用到ViewPager,則最好與這個方法結合使用,減少不必要的開銷。這個方法顯示的是fragment是否在手機屏幕上可見。

@Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        if(isVisibleToUser){
            Log.i(TAG, "setUserVisibleHint: 看到了");
        }else{
            Log.i(TAG, "setUserVisibleHint: 看不到")
        }
    }

暫時寫那麼多,明天繼續

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