Activity是活动的意思,翻译为界面更合适些。是四大组件中最常用的交互组件。生命周期是如何流转呢?我们在程序中入Log日志打印,展示调用次序。
Activity正常启动流程:
启动首页
MainActivity: onCreate____________________________________>(创建)
MainActivity: onStart______________________________________>(启动,可见)
MainActivity: onResume___________________________________>(启动,在前台)
跳转到第二页
MainActivity: onPause_____________________________________>(暂停,回后台)
SecondActivity: onCreate__________________________________ >
SecondActivity: onStart____________________________________>
SecondActivity: onResume_________________________________>
MainActivity: onStop______________________________________>(停止,不可见)
第二页返回首页
SecondActivity: onPause___________________________________>
MainActivity: onRestart____________________________________>
MainActivity: onStart______________________________________>
MainActivity: onResume___________________________________>
SecondActivity: onStop____________________________________>
SecondActivity: onDestroy__________________________________>(销毁)
结论:旧Activity先onPause(),新Activity再启动
PS:onPause(),onStop() 不要写耗时操作,这样新Activity能尽快显示出来并切换到前台。
Activity异常终止后的声明周期:
Activity意外终止,会调用onSaveInstanceState保存view的数据和状态,此时Activity会重新创建,并调用onRestoreInstanceState恢复数据和状态。
例:手机翻转横屏时,Activity会被重新创建,我们可以写个demo验证一下。