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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值