经过之前对安卓中Activity组件的学习,可以在理论上明白Activity的作用和用法。
本次的学习主要是Activity的生命周期运行情况的实践。通过实际的系统调用情况来确定生命周期的流程。
Activity组件(1)
Activity组件(2)
建立一个类实现所有的生命周期的方法
package edu.hrbeu.ActivityLifeCycle;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class ActivityLifeCycle extends Activity {
private static String TAG = "LIFTCYCLE";
@Override //完全生命周期开始时被调用,初始化Activity
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.i(TAG, "(1) onCreate()");
}
@Override //可视生命周期开始时被调用,对用户界面进行必要的更改
public void onStart() {
super.onStart();
Log.i(TAG, "(2) onStart()");
}
@Override //在onStart()后被调用,用于恢复onSaveInstanceState()保存的用户界面信息
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
Log.i(TAG, "(3) onRestoreInstanceState()");
}
@Override //在活动生命周期开始时被调用,恢复被onPause()停止的用于界面更新的资源
public void onResume() {
super.onResume();
Log.i(TAG, "(4) onResume()");
}
@Override // 在onResume()后被调用,保存界面信息
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
Log.i(TAG, "(5) onSaveInstanceState()");
}
@Override //在重新进入可视生命周期前被调用,载入界面所需要的更改信息
public void onRestart() {
super.onRestart();
Log.i(TAG, "(6) onRestart()");
}
@Override //在活动生命周期结束时被调用,用来保存持久的数据或释放占用的资源
public void onPause() {
super.onPause();
Log.i(TAG, “(7) onPause()”);、
}
@Override //在可视生命周期结束时被调用,一般用来保存持久的数据或释放占用的资源
public void onStop() {
super.onStop();
Log.i(TAG, "(8) onStop()");
}
@Override //在完全生命周期结束时被调用,释放资源,包括线程、数据连接等
public void onDestroy() {
super.onDestroy();
Log.i(TAG, "(9) onDestroy()");
}
}
全生命周期
- 启动Activity
- 按下模拟器的“返回键”
- 关闭Activity
LogCat输出结果为:
(1) onCreate()
(2) onStart()
(4) onResume()
(7) onPause()
(8) onStop()
(9) onDestroy()
- 调用onCreate()函数分配资源
- 调用onStart()将Activity显示在屏幕上
- 调用onResume()获取屏幕焦点
- 调用onPause()、onStop()和onDestroy(),释放资源并销毁进程
可视生命周期
- 启动ActivityLifeCycle
- 按“呼出/接听键”启动内置的拨号程序
- 再通过“返回键”退出拨号程序
- ActivityLifeCycle重新显示在屏幕中
LogCat输出结果为: 5、7、8、6、2、4
函数的调用顺序: onSaveInstanceState ()→ onPause()→ onStop() → onRestart()→ onStart()→ onResume()
- 调用onSaveInstanceState()函数保存Activity状态
- 调用onPause()和onStop(),停止对不可见Activity的更新
- 调用onRestart()恢复需要界面上需要更新的信息
- 调用onStart()和onResume()重新显示Activity,并接受用户交互
活动生命周期
- 启动ActivityLifeCycle
- 通过“挂断键”使模拟器进入休眠状态
- 再通过“挂断键”唤醒模拟器
LogCat输出结果为:5、7、4
函数调用顺序如下: onPause() → onSaveInstanceState() → onResume()
- 调用onSaveInstanceState ()保存Activity的状态
- 调用onPause()停止与用户交互
- 调用onResume()恢复与用户的交互