1.Activity的本质是什么
2.Activity的生命周期
3.Activity的启动方式---直接启动、匿名启动
4.Activity之间的数据交互
5.如何启动系统的Activity
6.Activity的启动模式
Activity的声明周期:
第一次启动:onCreate()--onStart()--onResume()-------(单击back键过后)-----onPause()--onStop()--onDestory()
显示状态:onCreate() onStart() onResume()
看不见状态:onPause() onStop()
销毁状态:onDestory()
多个Activity的生命周期交互的思想
onRestart()方法,在Activity重新可见的时候,先调用
onRestart()方法,在调用onStart()--onResume()
第一个Activity跳转到第二个Activity:
A Activity B Activity
1.打开Activity的时候
FirstActivity:onCreat()
FirstActivity:onStart()
FirstActivity:onResume()
2.从A Activity 打开B Activity的时候
FirstActivity:onPause()
SecondActivity:onCreate()
SecondActivity:onStart()
SecondActivity:onPause()
FirstActivity:onStop()
3.点击B Activity的Back键的时候
SecondActivity:onPause()
FirstActivity:onReStart()
FirstActivity:onStart()
FirstActivity:onResume()
SecondActivity:onStop()
SecondActivity:onDestory()
**********************
1.为什么要先暂停当前显示的Activity?(从A activity 跳转到 B Activity的时候)
2.为什么要先执行要打开的Activity的onCreate(),onStart(),onResume()方法呢?
3.在打开新Activity的时候,为什么不先执行当前Activity的onPause(),onStop()方法呢?
解答:假如我们现在正在打开播放音乐的app,这时候电话进来了,会调用当前Activity的onPause()方法,在这个方法里面,我们可以暂停音乐播放、保存音乐播放进度等。如果不暂停当前显示的Activity,我们就会一边拨打着电话,一边听着音乐在播放,效果很不好。
在打开另一个Activity的时候,会先调用当前Activity的onPause()方法,再调用第二个Activity的onCreate(),onStart(),onResume()方法,把第二个Activity需要的数据都准备好,确保第二个Activity可以完整的打开,如果在打开第二个Activity的时候,出现了异常,这时候界面就会出现黑屏状态,用户体验很不好。当第二个Activity可以正确的打开的时候,在调用当前Activity的onStop()方法,隐藏当前的Activity,显示第二个Activity。
Activity的横竖屏切换
onSaveInstanceState(Bundle outState)方法,用于存储activity销毁之前的信息。
这个方法在onPause()之后调用的。
横竖屏切换,会先销毁之前的activity,然后在重启activity。
Activity的启动方法
如果给activity添加隐式意图的话,需要在配置文件添加<intent-filter>
添加<action android:name="xxx">
<category android:name="
android.intent.category.DEFAULT">---必须添加