Android 的四大組件:
名稱 | 作用 |
---|---|
Activity | 活動民褂,UI頁面昵观,與一個用戶交互 |
Service | 服務劫流,無頁面死遭,在后臺運行 |
Broadcast | 廣播 |
ContentProvider | 內容提供者笼裳,主要與提供應用之間交互數據 |
1. Activity 展示UI與用戶交互
Activity是由Activity棧管理的,Activity有四種狀態(tài):
狀態(tài)名稱 | 描述 |
---|---|
運行狀態(tài) | 當Activity位于棧頂時昔驱,此時正好處 于屏幕最前方摹恰,此時處于運行狀態(tài) |
暫停狀態(tài) | 當Activity失去了焦點但仍然對用于可 見(如棧頂的Activity是透明的或者棧頂Activity并 不是鋪滿整個手機屏幕) |
停止狀態(tài) | 當Activity被其他Activity完全遮擋奋构,此時此Activity對 用戶不可見,此時處于 |
銷毀狀態(tài) | 當Activity由于人為或 系統(tǒng)原因(如低內存等)被銷毀晌该,此時處于 |
在每個不同的狀態(tài)階段肥荔,Adnroid系統(tǒng)對Activity內相應的方法進行了回調绿渣。因此朝群,我們在程序中寫Activity時,一般都是繼承Activity類并重寫相應的回調方法中符。
一個最簡單的完整的Activity生命周期會按照如下順序回調:onCreate -> onStart -> onResume -> onPause -> onStop -> onDestroy姜胖。稱之為entire lifetime。
回調方法 | 是否可見 |
---|---|
onCreate() | visible lifetime |
onStart() | visible lifetime |
onResume() | foreground lifetime |
onPause() | visible lifetime |
onStop() | invisible lifetime |
onDestroy | invisible lifetime |
頁面跳轉時生命周期的變化:
A->B:
將依次執(zhí)行A:onPause -> B:onCreate -> B:onStart -> B:onResume -> A:onStop淀散。
Back鍵:
將依次執(zhí)行B:onPause -> A:onRestart -> A:onStart -> A:onResume -> B:onStop -> B:onDestroy右莱。
此時如果按下Back鍵,系統(tǒng)返回到桌面档插,并依次執(zhí)行A:onPause -> A:onStop -> A:onDestroy慢蜓。
此時如果按下Home鍵(非長按),系統(tǒng)返回到桌面郭膛,并依次執(zhí)行A:onPause -> A:onStop晨抡。由此可見,Back鍵和Home鍵主要區(qū)別在于是否會執(zhí)行onDestroy则剃。
//通過重寫按下Back鍵的回調函數耘柱,轉成Home鍵的效果即可。
@Override
public void onBackPressed() {
Intent home = new Intent(Intent.ACTION_MAIN);
home.addCategory(Intent.CATEGORY_HOME);
startActivity(home);
}
activity.moveTaskToBack(true);
//moveTaskToBack()此方法直接將當前Activity所在的Task移到后臺棍现,同時保留activity順序和狀態(tài)调煎。
信息來源:
http://www.cnblogs.com/lwbqqyumidi/p/3769113.html
http://www.cnblogs.com/fansen/p/5667450.html
http://blog.csdn.net/feiduclear_up/article/details/45971119