监视状态变化

   

为了保证Activity能对状态改变响应,Android提供了一系列的事件处理器。当Activity在它的fullvisibleactive寿命中迁移时,会触发这些处理器。图3-8Activity状态而言,概述了这些寿命。

 

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这些事件处理函数时,必须总是调用父类的函数。

posted on 2009-07-20 16:51  xirihanlin  阅读(819)  评论(0编辑  收藏  举报