1. 程式人生 > >Android用程式碼測試Activity的生命週期

Android用程式碼測試Activity的生命週期

Activity的生命週期圖

程式碼測試Activity的生命週期

測試用例:

1)介面從死亡”-->“執行" (開啟介面)

2) 介面從執行”-->“死亡" (點選返回鍵)

3) 介面從執行”-->“停止" (點選home鍵)

4) 介面從停止” -->“執行"(長按home鍵返回介面)

5) 介面從執行”-->“暫停" (開啟一個對話方塊)

6) 介面從暫停” -->“執行"(從對話方塊返回)

程式碼如下:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
 
/**
 * 
 * @author Administrator
 1)介面從“死亡”-->“執行" 
    建立物件-->onCreate()-->onStart()-->onResume()---可見可操作(執行狀態)
2) 介面從“執行”-->“死亡" 
    onPause()-->onStop()-->onDestroy()-->Activity物件成為垃圾物件---不可見也不存在死亡狀態)
3) 介面從“執行”-->“停止" 
    onPause()-->onStop()---不可見但存在
4) 介面從“停止” -->“執行"
    onRestart()-->onStart()-->onResume()
5) 介面從“執行”-->“暫停" 
    onPause()
6) 介面從“暫停” -->“執行"
    onResume()
    
   重要的:
   1. onCreate(): 在Activity物件建立後呼叫, 只執行一次
   2. onDestroy(): 在Activity死亡之前呼叫, 只執行一次
   3. onResume(): 介面只有經歷此方法才能可見可操作
 */
public class MainActivity extends Activity{
 
    public MainActivity() {
        Log.e("TAG", "MainActivity()");
    }
     
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Log.e("TAG", "onCreate()");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
     
    @Override
    protected void onStart() {
        Log.e("TAG", "onStart()");
        super.onStart();
    }
     
    @Override
    protected void onResume() {
        Log.e("TAG", "onResume()");
        super.onResume();
    }
     
    @Override
    protected void onPause() {
        Log.e("TAG", "onPause()");
        super.onPause();
    }
     
    @Override
    protected void onStop() {
        Log.e("TAG", "onStop()");
        super.onStop();
    }
     
    @Override
    protected void onRestart() {
        Log.e("TAG", "onRestart()");
        super.onRestart();
    }
     
    @Override
    protected void onDestroy() {
        Log.e("TAG", "onDestroy()");
        super.onDestroy();
    }
     
    public void startSecond(View v) {
        startActivity(new Intent(this, SecondActivity.class));
    }
}

Activity生命週期與狀態

注:此文章來自尚矽谷http://www.atguigu.com/課程學習資料總結