青玄 发表于 2014-11-6 21:08:49

[原创]android四大组件之activity的生命周期以及启动模式



首先要说明的是activity是由android操作系统执行的:oncreate(), onStart(), onResume()

之后我们就可以看到界面了并且可以操作,如果打开了一个新的Activity的话,此activity就执行onPause()方法,如果这个新的activity把MainActivity完全覆盖住,MainActivity不见了,那就执行onStop()方法;
新的Activity被摧毁MainActivity重新回到前台的话,就执行:onRestart()-->onstart()-->onResume()
如果新的Activity没有把MianActivity完全覆盖住,MainActivity对用户可见,但不能操作就执行onPause()
如果新的Activity被摧毁MainActivity重新回到前台 ,就执行onResume()
当MainActivity的实例被摧毁时会调用onDestroy()

注意:
横竖屏切换回对Activity的生命造成影响,可如果想横竖屏切换buduiActivity的生命周期造成影响的话
可以把Activity的屏幕方向规定死,要么横屏,要么竖屏
android:screenOrientation="landscape"
   android:screenOrientation="portrait"



还有一种方法就是在主配置文件中的activity标签中使用这个属性就可以了:android:configChanges="orientation|keyboardHidden|screenSize"
***************************************activity的四大启动模式***************************************
activity android:name=“.MainActivity”android:launchMode=“standard”/>


1.standard
   该模式为默认模式,每次激活activity时都会创建activity实例,并放入任务栈中。
2.singleTop
   如果在任务的栈顶正好存在activity的实例,就重用该实例,否则就会创建新的实例并放入栈顶
3.singleTask
   如果在栈中已有该activity的实例,就重用实例,注意这个事栈内进行搜索的!
4.singleInstance
在一个新的栈中创建该activity的实例,并让多个应用共享该栈中的该activity实例;


页: [1]
查看完整版本: [原创]android四大组件之activity的生命周期以及启动模式