? ? ? ?作為一個(gè)即將面世的程序媛,對(duì)于前途一無所知,只有努力地去面對(duì),才不會(huì)顯得那么費(fèi)勁。個(gè)人對(duì)于自己所學(xué)的知識(shí),做了一些簡單的總結(jié),方便面試前的復(fù)習(xí)。

先來看看Activity生命周期狀態(tài)轉(zhuǎn)換圖

1、Activuty的三大狀態(tài)和七大生命周期方法分析
/**
* Activuty的三大狀態(tài)和七大生命周期方法分析
*/
public class MainActivity extends Activity {
/**
* Activity創(chuàng)建時(shí)第一個(gè)調(diào)用的方法,通常我們?cè)谠摲椒ㄖ屑虞d布局文件,初始化UI組件,時(shí)間注冊(cè)等等
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println("MainActivity_onCreate");
}
/**
* 在onCreate方法之后調(diào)用,用于顯示界面,但用戶還不能進(jìn)行交互
*/
@Override
protected void onStart() {
super.onStart();
System.out.println("MainActivity_onStart");
}
/**
*當(dāng)一個(gè)stopped狀態(tài)的Activity被返回時(shí)調(diào)用,之后再調(diào)用onResume()方法進(jìn)入運(yùn)行狀態(tài)
*/
@Override
protected void onRestart() {
super.onRestart();
System.out.println("MainActivity_onRestart");
}
/**
* 在onStart方法后調(diào)用,該方法執(zhí)行完成后,用戶可進(jìn)行交互,當(dāng)前Activity進(jìn)入resumed狀態(tài)
* 當(dāng)一個(gè)paused狀態(tài)的activity唄重新返回時(shí),會(huì)再次調(diào)用該方法,讓activity進(jìn)入運(yùn)行狀態(tài)
*/
@Override
protected void onResume() {
super.onResume();
System.out.println("MainActivity_onResume");
}
/**
* 當(dāng)其他Activity(透明或窗口模式)進(jìn)入時(shí),該方法會(huì)被調(diào)用,讓當(dāng)前Activity進(jìn)入paused狀態(tài)(暫停狀態(tài))
* 當(dāng)前Activity還可見但不能交互,如果其他更高優(yōu)先級(jí)的APP需要內(nèi)存時(shí),當(dāng)前Activity可能會(huì)被銷毀(kill)
* 當(dāng)前Activity被返回時(shí)會(huì)調(diào)用onResume()方法
*/
@Override
protected void onPause() {
super.onPause();
System.out.println("MainActivity_onPause");
}
/**
* 當(dāng)其他Activity完全覆蓋該Activity時(shí),會(huì)被調(diào)用,當(dāng)前Activity進(jìn)入stopped狀態(tài)(停止?fàn)顟B(tài))
* 不可見,如果其他更高優(yōu)先級(jí)的APP需要內(nèi)存時(shí),當(dāng)前Activity可能會(huì)被銷毀(kill)
* 當(dāng)前Activity被返回時(shí)會(huì)調(diào)用onRestart()方法
*/
@Override
protected void onStop() {
super.onStop();
System.out.println("MainActivity_onStop");
}
/**
* 當(dāng)前Activity被銷毀時(shí)調(diào)用,通常在該方法中用來釋放資源,當(dāng)前Activity kiiled。
*/
@Override
protected void onDestroy() {
super.onDestroy();
System.out.println("MainActivity_onDestroy");
}
}
2、Activity的四大啟動(dòng)模式簡述
Activity是Android的四大組件之一,在Android系統(tǒng)中是通過棧的方式對(duì)多個(gè)Activity進(jìn)行管理。
啟動(dòng)方式?jīng)Q定了Android系統(tǒng)在啟動(dòng)一個(gè)Activity時(shí),對(duì)棧該進(jìn)行什么樣的操作。

補(bǔ)充四大啟動(dòng)模式的使用場景:
Standard:大多數(shù)Activty。
SingleTop:如新聞?lì)惢蛘唛喿x類APP的內(nèi)容內(nèi)面。
SingleTask:如瀏覽器的主頁面。不管從多少個(gè)應(yīng)用啟動(dòng)瀏覽器,只會(huì)啟動(dòng)主界面一次,其余情況都會(huì)做onNewIntent,并且會(huì)清空主界面上面的其他頁面。
SingleInstance:如鬧鈴提醒,將鬧鈴提醒與鬧鈴設(shè)置分離。SIngleInstance不要用于中間頁面,比如:A->B(singleInstance)->C,完全退出后,在此啟動(dòng),首先打開的時(shí)B。