標籤:android activity
說明:初探activity 生命週期的7個函數。
例子:在MainActivity裡面添加一個按鈕,觸動按鈕,跳轉到OtherActivity,觀察控制台的輸出。
先來看看這幾個函數:
他們的流程可以看看官網提供的流程圖:
下面這張金字塔型的圖可能更直觀一些:
關看圖沒意思,看看程式運行起來的效果先。
步驟:1、在MainActivity裡面複寫其他6個函數。並且定義一個OtherActivity類,在activity_main添加一個按鈕,跳轉到OtherActivity,並為OtherActivity定義一個布局檔案Other.xml。(這個在上一篇已經說過方法了,在這裡就不再重複了。)
package com.away.b_02_lifecycle;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {private Button button; @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button = (Button) findViewById(R.id.Button);button.setOnClickListener(new ButtonListener());System.out.println("MainActivity:OnCreate");}class ButtonListener implements OnClickListener {@Overridepublic void onClick(View v) {Intent intent = new Intent();intent.setClass(MainActivity.this, OtherActivity.class);startActivity(intent);}}@Overrideprotected void onDestroy() {super.onDestroy();System.out.println("MainActivity:onDestroy");}@Overrideprotected void onPause() {super.onPause();System.out.println("MainActivity:onPause");}@Overrideprotected void onRestart() {super.onRestart();System.out.println("MainActivity:onRestart");}@Overrideprotected void onResume() {super.onResume();System.out.println("MainActivity:onResume");}@Overrideprotected void onStart() {super.onStart();System.out.println("MainActivity:onStart");}@Overrideprotected void onStop() {super.onStop();System.out.println("MainActivity:onStop");}}2、在OhterActivity裡面也複寫7個函數。
直接看結果:直接在控制台觀察,啟動MainActivity→OtherActivity的過程,函數的調用時機。
啟動MainActivity:
點擊按鈕,跳轉到OtherActivity:
當點擊後退按鈕,退回到MainActivity的時候:
這裡涉及到back stack:
1、啟動第一個Activity,backstack裡面就有了第一個Activity對象。
2、啟動第二個Activity,backstack裡面增加了第二個Activity對象。
3、啟動第三個Activity,backstack裡面增加了第三個Activity對象。如果按返回鍵,返回到第二個Activity,那麼,在backstack裡面第三個Activity對象就會被銷毀。以此類推,backstack遵循先進先出的順序。
寫完了。深夜寫的,原創不易,轉載標明出處~~晚安。
Activity的生命週期函數