Android安卓——Activity组件代码测试生命周期(续)

来源:互联网 发布:海口seo外包公司 编辑:程序博客网 时间:2024/05/16 17:41

经过之前对安卓中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()恢复与用户的交互