Activity的生命周期,分为onCreate onStart onSesume onPause onStop onDestory
另外,由于我们的应用程序因为意外退出,或者点击home键的时候,会走另外一个生命周期的方法onSaveInstanceState
这个方法在onStop方法之前调用,和onPause方法的先后顺序不确定,这个方法用于保存因为意外退出时,activity的一些
重要信息,通过bandle,在activity重新启动的时候,获取到之前的信息。
在activity重新启动的过程中,可以通过onCreate 或者 onStoreInstatnceState方法获取onSaveInStanceState方法中传递
过来的值,另外需要注意的是,在onCreate方法中必须有对savedInstanceState这个参数的非空判断,二者的区别在于,
使用onSaveInStanceState方法恢复数据的时候,其参数Bandle savedInstanceState一定不会为空。
另外需要注意的是如果activity的启动方式是SIngleTask模式的时候,还会在调用他的onNewIntent方法
2, 启动模式 :
Activity的启动方式分为四种,分别为Standard SingleTop SIngleTask SIngleInstance
standard启动模式是Activity的默认启动模式,每启动一个新的activity都会创建一个新的实例
singleTop启动模式,如果启动的新Activity位于栈顶,就不会在去新建立一个activity的实例了,
而是复用这个实例。
singleTask启动模式,如果启动一个新的activity,系统首先会检查是否有这个新的activity需要的任务栈,如果没有的话,系统
会新建一个任务栈,并且会把这个activity放在里面。 如果已经存在这个activity需要的任务栈,系统会再次检查这个任务栈中
是否有新建的activity的实例存在,如果有,会复用这个实例,并且清空这个实例上其他所有的activity,如果没有系统会新建一个
activity放在栈顶 (需要注意的是,在清单文件中,有TaskAffinity属性可以设置activity需要的任务栈)
SingleInstance启动模式,系统会为每一个activity新建一个任务栈,且只存在当前的任务栈。
3 启动方式:
Activity的启动模式分为2种,一种为隐士启动, 一种为显示启动。
显示启动,不需要制定任何的属性,只需要在启动的intent中标记出新activity的类名就行
隐士启动的话,需要配置三个参数action category data
action 可以有多个action属性,必须有,但是只需要有一个完全配对就行。
category 可以没有,如果有的话,必须完全配对
data 匹配规则跟action类似 (注意:在设置date的属性的时候,setdate 和settype不能分开使用,因为他们会相互清空对方)