1.程序代碼java
(經過在生命週期函數中添加「日誌點」的方法進行調試)android
package com.jhincheung.activitylifecycle; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { private static String TAG = "LIFECYCLE"; /* * 徹底聲明週期開始時被調用,初始化Activity */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.i(TAG,"(1)onCreate()"); //定義按鈕和按鈕監聽函數,經過用戶點擊按鈕調用finish()函數結束程序 Button button =(Button)findViewById(R.id.btn_finish); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { finish(); } }); } /* * 可視生命週期開始時被調用,對用戶界面進行必要的更改 */ @Override public void onStart() { super.onStart(); Log.i(TAG, "(2)onStart()"); }; /* * 在onStart()後被調用,用於恢復onSaveInstanceState()保存的用戶界面信息 */ @Override public void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); Log.i(TAG, "(3)onRestoreInstanceState()"); }; /* * 在活動週期開始時被調用,恢復被onPause()中止的用於界面更新的資源 */ @Override protected void onResume() { super.onResume(); Log.i(TAG, "(4)onResume()"); } /* * 在onPause後被調用,保存界面的臨時信息 */ @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); Log.i(TAG, "(5)onSaveInstanceState()"); } /* * 在從新進入可視生命週期前被調用,載入界面所須要的更改信息 */ @Override protected void onRestart() { super.onRestart(); Log.i(TAG, "(6)onRestart()"); } /* * 在活動生命週期結束時被調用,用來保存持久的數據或釋放佔用的資源 */ @Override protected void onPause() { super.onPause(); Log.i(TAG, "(7)onPause()"); } /* * 在可視化生命週期結束時被調用,用來釋放佔用的資源 */ @Override protected void onStop() { super.onStop(); Log.i(TAG, "(8)onStop()"); } /* * 在徹底生命週期結束時被調用,釋放資源,包括線程、數據鏈接等 */ @Override protected void onDestroy() { super.onDestroy(); Log.i(TAG, "(9)onDestory()"); } }
2.程序界面app
3.調用順序ide
(1)徹底生命週期函數
啓動ActivityLifeCycle — 點擊」結束程序「按鈕關閉程序spa
調用順序:onCreate — onStart —onResume — onPause — onStop — onDestroy線程
(2)可視生命週期調試
啓動ActivityLifeCycle — 啓動撥號程序 — 返回ActivityLifeCycle日誌
調用順序:code