Activity作为四大组件之一,也是我们开发中必不可少的一部分,但有时候在开发中会因为只使用一部分而遗漏掉其他的东西。先暂时写一些,有错误的地方欢迎指正。
Activity的生命周期
onCreate():Activity正在被创建,用来做一些初始化的工作,比如加载布局资源和初始化数据。
onStart():Activity正在被启动,此时是不可见的,无法与用户进行交互。
onResume():Activity此时是可见,出现在前台并开始活动。
onPause():Activity正在停止。
onStop():Activity即将停止。
onDestory():Activity即将销毁。可以做一些回收的工作和资源的释放。
onRestart():Activity正在重新启动。一般情况下当前Activity从不可见到可见的时候,onRestart()就会被调用。比如按home键回到桌面再进入Activity时会被调用。后面会有Log日志针对这一情况的生命周期的先后执行情况进行记录总结。
有关Activity的生命周期的Log测试
-
启动测试
这就是正常启动一个Activity的生命周期的先后顺序
-
点击Home键到桌面再返回的测试
当点击Home键时,手机界面由程序跳到桌面,执行了onPause()和onStop()方法,再点击应用的icon进入到应用时,会执行onRestart()方法,再执行onStart()和onResume();
-
关于从当前Activity进入到下一个Activity的生命周期的运行测试
当我们从当前Activity进入下一个新的Activity时,如果不测试,我还理解的是旧的Activity的onStop()先执行才会执行新的Activit的onCreate(),然而测试后才知道,当新的Activity的前台显示并可以交互后(onResume),旧的Activity的onStop才执行。
-
关于从当前Activity进入到下一个Activity(透明)的生命周期的运行测试
同样是上面的跳转,当新的Activity设置为透明的时候,旧的Activity不会回调onStop().
那么,为什么不会回调onStop()呢?原因是,onStop方法是当Activity完全不可见的时候才会被调用,当新的Activity设置为透明时,旧Activity依旧可见,所以onStop()不会被调用。