Android Activity生命周期


這篇文章主要學習Android activity的生命周期

 

 

 

 

 一、Activity的啟動

 

onCreate()——>onStart()——>onResume()

 1、 onCreate(Bundle savedInstanceState)
     當活動第一次啟動的時候,觸發該方法,可以在此時完成活動的初始化工作。
     savedInstanceState    該參數可以為空( null ),也可以是之前調用 onSaveInstanceState ()方法保存的狀態信息

 

 2、 onStart()     
     該方法的觸發表示所屬活動將被展現給用戶

 

 3、 onResume()     
      當一個活動和用戶發生交互的時候,觸發該方法

二、Activity的銷毀:

 

onPause()——>onStop()——>onDestroy()

 

4、onPause()

當一個正在前台運行的活動因為其他的活動需要前台運行而轉入后台運行的時候,觸發該方法。這時候需要將活動的狀態持久化,比如正在編輯的數據庫記錄等

 

5、onStop()

當一個活動不再需要展示給用戶的時候,觸發該方法。 如果內存緊張,系統會直接結束這個活動,而不會觸發 onStop 方法。
所以保存狀態信息是應該在onPause時做,而不是onStop時做。
活動如果沒有在前台運行,都將被停止或者Linux管理進程為了給新的活動預留足夠的存儲空間而隨時結束這些活動。
因此對於開發者來說,在設計應用程序的時候,必須時刻牢記這一原則。
在一些情況下,onPause方法或許是活動觸發的最后的方法,因此開發者需要在這個時候保存需要保存的信息


6、onDestroy()
當活動銷毀的時候,觸發該方法。 和 onStop 方法一樣,如果內存緊張,系統會直接結束這個活動而不會觸發該方法

 

 

三、Activty的生命周期的就是它所在進程的生命周期。

 


 

 

 

 

 

 

/**
* activity 生命周期學習
* Activty的生命周期的就是它所在進程的生命周期。
*
* 應用程序中,一個Activity通常就是一個單獨的屏幕,它上面可以顯示一些控件也可以監聽並處理用戶的事件做出響應。
* Activity之間通過Intent進行通信。在Intent 的描述結構中,有兩個最重要的部分:動作和動作對應的數據。
*/
public class StudyActivity extends Activity {


/**
* 當活動第一次啟動的時候,觸發該方法,可以在此時完成活動的初始化工作。
* @param savedInstanceState 該參數可以為空( null ),也可以是之前調用 onSaveInstanceState ()方法保存的狀態信息。
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_study);//
}

/**
* 當處於停止狀態的活動需要再次展現給用戶的時候,觸發該方法
*/
@Override
protected void onRestart() {
super.onRestart();
}

/**
* 該方法的觸發表示所屬活動將被展現給用戶
*/
@Override
protected void onStart() {
super.onStart();
}

/**
* 當一個活動和用戶發生交互的時候,觸發該方法
*/
@Override
protected void onResume() {
super.onResume();
}

/**
* 當一個正在前台運行的活動因為其他的活動需要前台運行而轉入后台運行的時候,觸發該方法。這時候需要將活動的狀態持久化,比如正在編輯的數據庫記錄等
*/
@Override
protected void onPause() {
super.onPause();
}

/**
* 當一個活動不再需要展示給用戶的時候,觸發該方法。
* 如果內存緊張,系統會直接結束這個活動,而不會觸發 onStop 方法。
* 所以保存狀態信息是應該在onPause時做,而不是onStop時做。
* 活動如果沒有在前台運行,都將被停止或者Linux管理進程為了給新的活動預留足夠的存儲空間而隨時結束這些活動。
* 因此對於開發者來說,在設計應用程序的時候,必須時刻牢記這一原則。
* 在一些情況下,onPause方法或許是活動觸發的最后的方法,因此開發者需要在這個時候保存需要保存的信息
*/
@Override
protected void onStop() {
super.onStop();
}

/**
* 當活動銷毀的時候,觸發該方法。
* onStop 方法一樣,如果內存緊張,系統會直接結束這個活動而不會觸發該方法
*/
@Override
protected void onDestroy() {
super.onDestroy();
}

/**
* 系統調用該方法,允許活動保存之前的狀態,比如說在一串字符串中的光標所處的位置等。
* 通常情況下,開發者不需要重寫覆蓋該方法,在默認的實現中,已經提供了自動保存活動所涉及到的用戶界面組件的所有狀態信息
* @param outState
*/
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
}
剛開始寫哦,如有不妥望大家多多包含!

 



 


 


 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM