关于Activity生命周期的一些测试和总结

Activity作为四大组件之一,也是我们开发中必不可少的一部分,但有时候在开发中会因为只使用一部分而遗漏掉其他的东西。先暂时写一些,有错误的地方欢迎指正。

Activity的生命周期

onCreate():Activity正在被创建,用来做一些初始化的工作,比如加载布局资源和初始化数据。
onStart():Activity正在被启动,此时是不可见的,无法与用户进行交互。
onResume():Activity此时是可见,出现在前台并开始活动。
onPause():Activity正在停止。
onStop():Activity即将停止。
onDestory():Activity即将销毁。可以做一些回收的工作和资源的释放。
onRestart():Activity正在重新启动。一般情况下当前Activity从不可见到可见的时候,onRestart()就会被调用。比如按home键回到桌面再进入Activity时会被调用。后面会有Log日志针对这一情况的生命周期的先后执行情况进行记录总结。

有关Activity的生命周期的Log测试
  • 启动测试


    关于Activity生命周期的一些测试和总结_第1张图片
    activity启动生命周期.png

这就是正常启动一个Activity的生命周期的先后顺序

  • 点击Home键到桌面再返回的测试


    关于Activity生命周期的一些测试和总结_第2张图片
    Activity到桌面再到Activity的生命周期.png

当点击Home键时,手机界面由程序跳到桌面,执行了onPause()和onStop()方法,再点击应用的icon进入到应用时,会执行onRestart()方法,再执行onStart()和onResume();

  • 关于从当前Activity进入到下一个Activity的生命周期的运行测试


    关于Activity生命周期的一些测试和总结_第3张图片
    image.png

当我们从当前Activity进入下一个新的Activity时,如果不测试,我还理解的是旧的Activity的onStop()先执行才会执行新的Activit的onCreate(),然而测试后才知道,当新的Activity的前台显示并可以交互后(onResume),旧的Activity的onStop才执行。

  • 关于从当前Activity进入到下一个Activity(透明)的生命周期的运行测试


    关于Activity生命周期的一些测试和总结_第4张图片
    image.png

同样是上面的跳转,当新的Activity设置为透明的时候,旧的Activity不会回调onStop().
那么,为什么不会回调onStop()呢?原因是,onStop方法是当Activity完全不可见的时候才会被调用,当新的Activity设置为透明时,旧Activity依旧可见,所以onStop()不会被调用。

你可能感兴趣的:(关于Activity生命周期的一些测试和总结)