瞭解Android核心元件活動生命週期————旋轉螢幕

阢Lara發表於2020-09-26

(一)編寫程式碼,對一個活動進行輸出。

package com.example.myapplication;

 

import android.os.Bundle;

 

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

 

import androidx.appcompat.app.AppCompatActivity;

 

import androidx.appcompat.widget.Toolbar;

 

import com.google.android.material.floatingactionbutton.FloatingActionButton;

import com.google.android.material.snackbar.Snackbar;

 

 

public class MainActivity extends AppCompatActivity {

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.

        getMenuInflater().inflate(R.menu.menu_main, menu);

 

        return true;

    }

 

    @Override

    public boolean onOptionsItemSelected(MenuItem item) {

        // Handle action bar item clicks here. The action bar will

        // automatically handle clicks on the Home/Up button, so long

        // as you specify a parent activity in AndroidManifest.xml.

        int id = item.getItemId();

 

        //noinspection SimplifiableIfStatement

        if (id == R.id.action_settings) {

            return true;

        }

 

        return super.onOptionsItemSelected(item);

    }

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

 

        setContentView(R.layout.activity_main);

 

        System.out.println("===== MainActivity.onCreate");

    }

 

    @Override

    protected void onRestart() {

        super.onRestart();

 

        System.out.println("===== MainActivity.onRestart");

    }

 

    @Override

    protected void onStart() {

        super.onStart();

 

        System.out.println("===== MainActivity.onStart");

    }

 

    @Override

    protected void onResume() {

        super.onResume();

 

        System.out.println("===== MainActivity.onResume");

    }

 

    @Override

    protected void onPause() {

        super.onPause();

 

        System.out.println("===== MainActivity.onPause");

    }

 

    @Override

    protected void onStop() {

        super.onStop();

 

        System.out.println("===== MainActivity.onStop");

    }

 

    @Override

    protected void onDestroy() {

        super.onDestroy();

 

        System.out.println("===== MainActivity.onDestroy");

    }

}

 

 

(二)設定過濾器(方便檢視)

 

(三)除錯

1.啟動

  建立->啟動->恢復

 

 

 

 2.旋轉螢幕

  暫停->停止->銷燬->建立->啟動->恢復

 

 

 

3.再次旋轉

    暫停->停止->銷燬->建立->啟動->恢復

 

 

 

 

 

實驗小(必寫環節)

 

1.瞭解熟悉了安卓的生命週期,當旋轉時時按步驟銷燬再重新建立

 

 

 

 

 

  1. 具體步驟

1.啟動Activity:系統會先呼叫onCreate方法,然後呼叫onStart方法,最後呼叫onResume,Activity進入執行狀態。

2.當前Activity被其他Activity覆蓋其上或被鎖屏:系統會呼叫onPause方法,暫停當前Activity的執行。

3.當前Activity由被覆蓋狀態回到前臺或解鎖屏:系統會呼叫onResume方法,再次進入執行狀態。

4.當前Activity轉到新的Activity介面或按Home鍵回到主屏,自身退居後臺:系統會先呼叫onPause方法,然後呼叫onStop方法,進入停滯狀態。

5.使用者後退回到此Activity:系統會先呼叫onRestart方法,然後呼叫onStart方法,最後呼叫onResume方法,再次進入執行狀態。

6.當前Activity處於被覆蓋狀態或者後臺不可見狀態,即第2步和第4步,系統記憶體不足,殺死當前Activity,而後使用者退回當前Activity:再次呼叫onCreate方法、onStart方法、onResume方法,進入執行狀態。

7.使用者退出當前Activity:系統先呼叫onPause方法,然後呼叫onStop方法,最後呼叫onDestory方法,結束當前Activity。

相關文章