? ? ? ?作為一個即將面世的程序媛,對于前途一無所知,只有努力地去面對,才不會顯得那么費勁。個人對于自己所學的知識,做了一些簡單的總結,方便面試前的復習。
先來看看Activity生命周期狀態轉換圖
1、Activuty的三大狀態和七大生命周期方法分析
/**
* Activuty的三大狀態和七大生命周期方法分析
*/
public class MainActivity extends Activity {
/**
* Activity創建時第一個調用的方法,通常我們在該方法中加載布局文件,初始化UI組件,時間注冊等等
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println("MainActivity_onCreate");
}
/**
* 在onCreate方法之后調用,用于顯示界面,但用戶還不能進行交互
*/
@Override
protected void onStart() {
super.onStart();
System.out.println("MainActivity_onStart");
}
/**
*當一個stopped狀態的Activity被返回時調用,之后再調用onResume()方法進入運行狀態
*/
@Override
protected void onRestart() {
super.onRestart();
System.out.println("MainActivity_onRestart");
}
/**
* 在onStart方法后調用,該方法執行完成后,用戶可進行交互,當前Activity進入resumed狀態
* 當一個paused狀態的activity唄重新返回時,會再次調用該方法,讓activity進入運行狀態
*/
@Override
protected void onResume() {
super.onResume();
System.out.println("MainActivity_onResume");
}
/**
* 當其他Activity(透明或窗口模式)進入時,該方法會被調用,讓當前Activity進入paused狀態(暫停狀態)
* 當前Activity還可見但不能交互,如果其他更高優先級的APP需要內存時,當前Activity可能會被銷毀(kill)
* 當前Activity被返回時會調用onResume()方法
*/
@Override
protected void onPause() {
super.onPause();
System.out.println("MainActivity_onPause");
}
/**
* 當其他Activity完全覆蓋該Activity時,會被調用,當前Activity進入stopped狀態(停止狀態)
* 不可見,如果其他更高優先級的APP需要內存時,當前Activity可能會被銷毀(kill)
* 當前Activity被返回時會調用onRestart()方法
*/
@Override
protected void onStop() {
super.onStop();
System.out.println("MainActivity_onStop");
}
/**
* 當前Activity被銷毀時調用,通常在該方法中用來釋放資源,當前Activity kiiled。
*/
@Override
protected void onDestroy() {
super.onDestroy();
System.out.println("MainActivity_onDestroy");
}
}
2、Activity的四大啟動模式簡述
Activity是Android的四大組件之一,在Android系統中是通過棧的方式對多個Activity進行管理。
啟動方式決定了Android系統在啟動一個Activity時,對棧該進行什么樣的操作。
補充四大啟動模式的使用場景:
Standard:大多數Activty。
SingleTop:如新聞類或者閱讀類APP的內容內面。
SingleTask:如瀏覽器的主頁面。不管從多少個應用啟動瀏覽器,只會啟動主界面一次,其余情況都會做onNewIntent,并且會清空主界面上面的其他頁面。
SingleInstance:如鬧鈴提醒,將鬧鈴提醒與鬧鈴設置分離。SIngleInstance不要用于中間頁面,比如:A->B(singleInstance)->C,完全退出后,在此啟動,首先打開的時B。