现在的位置: 首页 > 综合 > 正文

Activtiy的四种加载模式

2013年02月28日 ⁄ 综合 ⁄ 共 1093字 ⁄ 字号 评论关闭

文章出处:http://www.eoeandroid.com/blog-646109-2743.html

在activity的配置文件中提供了四种activity的加载模式:
android:launchMode="standard"/"singleTop"/"singleTask"/"singleInstanse"

我们在设计应用程序的时候首先要把activity之间的跳转关系确定好,以及它什么时间该pause,stop,destroy都要进行严格的控制,而以前不知道activity的加载模式的时候老是打开了很多activity,然后在点击返回的时候同一activity出现很多次才回到主页面,现在总结一下activity四种加载模式

首先如果我们不写默认的是standard,它表示如果需要就创建,这也就是当初不知道写这个属性的时候打开了很多activity的缘故

singleTop只针对栈中最上面的activity设置单例,意思就是说如果A在栈的最上面,如果你把A的加载模式设成singleTop,则你再启动一个A的时候不是重新启一个,点击返回就可以看出效果,而如果设置为standard,就会再重新开启一个A,在你点击返回的时候发现还有一个A,但是如果A不在栈的最上面,则你要是再打开一个A的话,还是会重新创建一个A

下面就说到了singleTask,它表示在这个运行栈中此activity只能有一个,上面说到如果把A设置成singleTop,如果A不在栈最上层,就重新创建A,但是如果你把A设成singleTask,则会清除A上面所有的activity,把A调到栈顶,因为在此栈中A只能有一个,栈又是后进先出的机制,你不可能把A直接从里面给拉出来,所以就必须先要把A上面的activity清除掉

最后说一下singleInstance,如果把activity的加载模式设成了singleInstance,则表示为此activity单开一个任务栈,单开的这个任务栈中只有此activity

android:android:noHistory="true"表示不把当前此activity压入栈,只是显示当前activity,如果它跳转到其他activity,再点击返回的时候将看不到设置成nohistory的的activity

android:theme="@+android:style/Theme.Dialog"表示对此activity的风格进行设置,当前的activity就是被设置成了dialog的样式

 

转载地址:http://lowry.iteye.com/blog/793219

抱歉!评论已关闭.