監視狀態變化

來源:互聯網
上載者:User
   

為了保證Activity能對狀態改變響應,Android提供了一系列的事件處理器。當Activity在它的full、visible和active壽命中遷移時,會觸發這些處理器。圖3-8就Activity狀態而言,概述了這些壽命。

 

圖3-8

 

下面的架構代碼顯示了一個Activity中可利用的狀態變化事件的方法處理器。在每一個方法中都有一些提示,描述了在每個狀態變化事件裡建議採取的動作。

 

package com.paad.myapplication;

 

import android.app.Activity;

import android.os.Bundle;

public class MyActivity extends Activity {

 

// 在full壽命的開始調用。

@Override

public void onCreate(Bundle icicle) {

super.onCreate(icicle);

// 初始化Activity。

}

 

// 在onCreate結束後調用,用來恢複UI狀態。

@Override

public void onRestoreInstanceState(Bundle savedInstanceState) {

super.onRestoreInstanceState(savedInstanceState);

// 從savedInstanceState恢複UI狀態。

// bundle對象同樣在onCreate方法中被傳入。

}

 

// 在visible壽命之前被調用。

@Override

public void onRestart(){

super.onRestart();

// 載入變更。這個Activity已經可見過。

}

 

// 在visible壽命的開始調用。

@Override

public void onStart(){

super.onStart();

// 應用需要的UI變更。現在,Activity可見。

}

 

// 在active壽命的開始調用。

@Override

public void onResume(){

super.onResume();

// 恢複暫停UI更新、線程或者當其inactive時被暫停所需進程。

}

 

// 在active壽命結束調用來儲存UI狀態變化。

@Override

public void onSaveInstanceState(Bundle savedInstanceState) {

// 儲存UI狀態變化到savedInstanceState中。

// 當進程被殺死或重啟時這個bundle會傳入到onCreate方法。

super.onSaveInstanceState(savedInstanceState);

}

 

// 在active壽命結束調用。

@Override

public void onPause(){

// 中止UI更新、線程或CPU強烈的進程(當Activity不再是active前台Activity時不需要被更新)

super.onPause();

}

 

// 在visible壽命結束調用。

@Override

public void onStop(){

// 中止UI更新、線程或者Activity不可見時不需要的進程

// 儲存資料和狀態變化。

// 當這個被調用後,進程可能被殺死。

super.onStop();

}

 

// 在full壽命結束調用。

@Override

public void onDestroy(){

// 清除任何資源,包括結束線程,關閉資料庫連接等。

super.onDestroy();

}

}

 

如上面的程式碼片段所示,當你override這些事件處理函數時,必須總是調用父類的函數。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.