鱼C论坛

 找回密码
 立即注册
查看: 1995|回复: 0

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

[复制链接]
发表于 2014-11-6 21:08:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
201108091357181401.png QQ截图20141106202428.png

首先要说明的是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实例;


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 16:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表