Activity的生命周期
Activity是Android中的四大组件之一,也是最基本,最重要的组件,是android系统提供一个可视化的,能与用户交换的组件。
系统提供的组件,不需要用户实例化,用户也不能实例化,是系统进行回调,
那么不需要我们实例化我们怎么用呢,这些组件都有相同的特点就是:
1.都需要在配置文件中注册 2.都需要自定义类去继承系统的Api 3.都有自己的生命周期
那么Activity的生命周期有那些方法呢:
1.onCreate 2.onStart 3.onrestart 4.onResume 5.onpause 6.onstop 7.ondestroy
一个Activity的开启到销毁
OnCreate--onStart--onResume--onPause--Onstop--onDestroy
A Activity 跳转到 到 B Activity (BActivity是完全覆盖AActivity)
AOnCretate--AOnStart--AOnResume--AOnPause--BOnCreate--BOnStart--BOnReSume--AOnStopy
B activity 返回到A Activity生命周期执行的回调是:
BOnPause---AOnRestart--AOnResume---BOnstop---BOnDestory
手机的横竖屏切换,android的生命周期方法的重新执行,
onPause -- onstop--ondestroy--oncreate--onstart--onresume
如果想横竖屏切换时,不重新走生命周期,需要清单为Activity配置属性:configChanges
也可以设置屏幕 锁定为横屏或竖屏 ,screenOrientation:lanscape | portriant
启动模式
standard
默认模式,可以不用写配置。在这个模式下,都会默认创建一个新的实例。因此,在这种模式下,可以有多个相同的实例,也允许多个相同Activity叠加。
singleTop
可以有多个实例,但是不允许多个相同Activity叠加。即,如果Activity在栈顶的时候,启动相同的Activity,不会创建新的实例,而会调用其onNewIntent方法。
singleTask
只有一个实例。在同一个应用程序中启动他的时候,若Activity不存在,则会在当前task创建一个新的实例,若存在,则会把task中在其之上的其它Activity destory掉。
singleInstance
只有一个实例,并且这个实例独立运行在一个task中,这个task只有这个实例,不允许有别的Activity存在。