Activity知識總結

Activity也叫活動,是Android四大組件之一。

生命週期:

1、onCreate():Activity被創建,這個階段可以做一些初始化工作(界面、數據等)。

2、onRestart():Activity正在被重新啓動,這種情形一般是用戶行爲導致(按Home、進入新的Activity又重新回退)。

3、onStart():Activity被啓動,這個階段屬於可見但無法交互。

4、onResume():Activity處於前臺並可以進行交互。

5、onPause():Activity正在停止。

6、onStop():Activity即將停止。

7、onDestory():Activity被銷燬,這裏必須回收所有的系統資源。

典型情況下生命週期:

1、第一次啓動:onCreate、onStart、onResume。

2、打開新Activity或按Home進入桌面:onPause、onStop。(如果新Activity爲透明則不會回調onStop)。

3、再次回到原Activity:onRestart、onStart、onResume。

4、按下back鍵回退時:onPause、onStop、onDestory。

異常情況下生命週期:

1、Activity被系統殺死並重建:onPause/onSaveInstanceState(這兩個方法沒有既定的時序關係)、onStop、onDestory、onCreate、onStart、onRestoreInstanceState、onResume。

優先級:

1、前臺Activity:與用戶進行交互的Activity,優先級最高。

2、可見非前臺Activity:無法與用戶交互但可見的Activity(如打開了對話框),優先級次於前臺Activity。

3、後臺Activity:調用了Stop方法的Activity,優先級最低。

橫豎屏切換時不重建Activity方法:

在AndroidMenifest.xml中的activity節點加一個“configChange="orientation|screenSize"”即可。

啓動模式:

1、standard:標準模式,採用先進後出方法,每一次啓動都需創建新的Activity。

2、singleTop:棧頂複用模式,如果Activity位於棧頂,則無需新建Activity直接複用即可。

3、singleTask:棧內複用模式,如果Activity處於棧中,則會把排於其上的Activity都擠出棧內,然後複用。

4、singleInstance:單實例模式,具有此種模式的Activity會位於一個單獨的棧內。

設置啓動模式方法:

1、AndroidMenifest方式:在AndroidMenifest.xml中的activity節點加一個“launchMode="你想要的的模式"”即可。

2、代碼方式:通過給Intent增加標記位來設置啓動模式:intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

優先級第二種高於第一種,如果兩者同時存在,優先使用第二種。

Activity啓動方式:

1、顯示調用

Intent intent = new Intent(this, SecondActivity.class);
        startActivity(intent);

2、隱式調用

隱式調用需要Intent能夠匹配目標組件中的IntentFilter中的所有的信息,包括action、category、data。

學習資料:Android開發藝術探索。

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