Android_活动周期
1.Test项目
创建两个活动normal和dialog
mainActivity中添加两个Button,点击触发跳转两个不同的页面,normal和dialog,在mainActivity中重写生命周期的所有方法,每个方法下面输出Log
2.报错:You need to use a Theme.AppCompat theme (or descendant) with this activity
找到最有用的一句话,说明所使用的 theme 和当前 Activity 不匹配
AndroidManifest.xml 中 activity 配置如下:
<activity android:name=".Dialog"
android:theme="@android:style/Theme.Dialog">
</activity>
根据报错提示改为 AppCompat 主题即可:
<activity
2 android:name=".DialogActivity"
3 android:theme="@style/Theme.AppCompat.Dialog">
4 </activity>
3.执行结果
(1)点击按钮跳转到normal页面,normal页面全面覆盖了MainActivity,所以系统调用了方法onPause()和onStop()
(2)点击按钮跳转到dialog页面,首先返回到了MainActivity会首先调用的方法是onRestart,之后调用onStart(),然后调用onStop()方法
点击按钮之后,调用了onPause()方法,这是因为dialogActivity并没有完全遮挡MainActivity画面,所以没有调用onStop()方法
按下Back键,只是调用了onResume()方法,再次按下back键,一次调用onPause(),onStop(),onDestroy()方法
个人总结的总体流程图如下:
onCreate()
|
onStart() < —— onRestart()
|
onResume()
|
onPause()
|
onStop()__________________|
|
onDestroy()
|