安卓學習筆記----淺析安卓生命週期

1. 簡述

安卓的生命週期有六個,分別爲:onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy(),每一個Activity都有這些生命週期,通過這些生命週期,Activity在不存在,停止,暫停和運行之間轉換,如下圖:
在這裏插入圖片描述

2. 通過打印日誌信息更深瞭解生命週期

如果對安卓Logcat工具或是日誌打印不瞭解,請戳此鏈接

用到的代碼
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivityLog";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d(TAG,"onCreate()方法被調用");
        setContentView(R.layout.activity_main);
    }

    @Override
    public void onStart(){
        super.onStart();
        Log.d(TAG,"onStart()方法被調用");
    }

    @Override
    public void onResume(){
        super.onResume();
        Log.d(TAG,"onResume()方法被調用");
    }

    @Override
    public void onPause(){
        super.onPause();
        Log.d(TAG,"onPause()方法被調用");
    }

    @Override
    public void onStop(){
        super.onStop();
        Log.d(TAG,"onStop()方法被調用");
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.d(TAG, "onDestroy()方法被調用");
    }
}
第一步:第一次打開應用

運行程序,第一次打開應用日誌顯示如下圖,可見三個生命週期方法被調用,分別爲:onCreate(), onStart(), onResume(),通過上圖我們得知,一個Activity第一次打開經過了:不存在->停止->暫停->運行階段
在這裏插入圖片描述

第二步:按下home鍵

日誌打印如下,可見兩個生命週期方法被調用,分別爲 onPause(), onStop(),此時,Activity實例並沒有被消滅,而是存在內存之中,Activity的狀態也來到了停止
在這裏插入圖片描述

第三步:再次打開應用

日誌打印如圖,可見 onStart(), **onResume()**方法再次被調用,Activity處於運行狀態
在這裏插入圖片描述

第四步:按下返回鍵

日誌打印如下,可見調用了onPause(), onStop(), **onDestroy()**三個生命週期方法,此時應用退出,Activity又回到了不存在的狀態,內存中已經沒有了activity實例
在這裏插入圖片描述

3. 注意

當安卓應用處於運行狀態屏幕翻轉之後,依此進行的操作是onPause(), onStop(), onDestroy()onCreate(), onStart(), onResume(),即,屏幕翻轉之後的Activity實例要先被安卓系統消滅,然後再重新創建,所以,像我一樣的安卓小萌新開發的時候注意屏幕翻轉的信息保存。

發佈了27 篇原創文章 · 獲贊 49 · 訪問量 2254
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章