Android Activity 生命週期詳解

學習android開發這麼久對於activity的生命週期尚未仔細思考過,因此,我大體的把這些東西整理一下,但願經過這使本身理解的更透徹點吧!android

首先看一下Activity生命週期圖和它的的四個階段 app


它的的四個階段
學習

1. 開始Activity:在這個階段依次執行3個生命週期方法:onCreate()、onStart()和onResume()。
2. Activity失去焦點:若是在Activity得到焦點的狀況下進入其餘的Activity,這時當前的Activity會失去焦點。在這一階段,會依次執行onPause()和onStop()方法。
3. Activity從新得到焦點:若是Activity從新得到焦點,會依次執行 3個生命週期方法:onRestart()、onStart()和onResume()。
4. 關閉Activity:當Activity被關閉時系統會依次執行3個生命週期方法:onPause()、onStop()和onDestroy()。
動畫

如今經過一個例子來了解它的生命周方法在四個階段的用法:spa

 七個生命週期方法以下,它們的做用見下面示例方法註釋中code

   protected void onCreate(Bundle savedInstanceState)blog

   protected void onStart()生命週期

   protected void onResume()資源

   protected void onPause()開發

   protected void onStop()

   protected void onRestart()

   protected void onDestroy()  

示例代碼:

package com.liu.activity;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class MyActivity extends Activity {
  private  static final String lifeTag = "Activity生命週期";
    
    //當Activity第一次被建立時調用,咱們能夠在這進行初始化操做
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Log.d(lifeTag,"---->oncreate()被執行");
    }
    //onStart()方法在Activity開始被執行時調用,它緊隨onCreate()方法以後調用
    protected void onStart() {
        super.onStart();
        Log.d(lifeTag,"---->onStart()被執行");
    }
    
    //onResume()方法在Activity即將與用戶交互時調用
    protected void onResume() {
        super.onResume();
        Log.d(lifeTag,"---->onResume()被執行");
    }
    
    //當Activity從stopped狀態啓動時會調用onRestart(),後面老是調用onStart()方法
    protected void onRestart() {
        super.onRestart();
        Log.d(lifeTag,"---->onRestart()被執行");
    }
    
    //在一個Activity啓動另外一個Activity時調用,它一般被用來持久化數據、中止動畫或其餘耗費資源的動做,
    //下一個Activity必須等待這個方法返回後在啓動,因此在這裏作過多的操做
    protected void onPause() {
        super.onPause();
        Log.d(lifeTag,"---->onPause()被執行");
    }
    
    //onStop()方法在一個新的Activity啓動、其餘的Activity切換到前臺、當天Activity被銷燬時都會被調用
    protected void onStop() {
        super.onStop();
        Log.d(lifeTag,"---->onStop()被執行");
    }

    //Activitybe被銷燬時調用
    protected void onDestroy() {
        super.onDestroy();
        Log.d(lifeTag,"---->onDestroy()被執行");
    }
    
}

啓動程序調用的方法以下:


當按下撥號鍵使activity失去焦點調用的方法以下:


當按下返回鍵使Activity得到焦調用的方法以下,:


關閉Avtivity時調用的方法以下:

相關文章
相關標籤/搜索