首先需要明白任务栈:

栈是先进后出,activity才用不同的启动模式,当每次访问他时会采取完全不同的操作。

1、标准模式

<activiry android:name=”.MainActiviry”
android:launchMode=”standard” />

每次访问activity都会再栈内创建一个实例

2、栈顶模式--singleTop

如果访问一个activity时,该activity的时候刚好在栈顶,那么不会再次实例化对象,而是访问这个栈顶已经存在的实例,比如一个activity设置的是栈顶模式,当在他自己界面再往自己界面跳转的时候就不会再实例化一个自己实例出来。

3、singleTask

如果你访问的这个activity,已经在栈中有了一个实例,那么就不会再次生成activity的实例,而是访问这个已经在栈中存在的实例,并且将所有在该栈上面的activity全部移除,这样它就是在栈顶了。

4、单例模式--singleInstance

比如浏览器,如果一个程序打开了浏览器,另外一个程序又要打开浏览器,那么就会跳转到已经打开的浏览器界面,这样可以避免资源的浪费。

更多相关文章

  1. Android四种模式里隐含的哲学
  2. Android自定义Dialog简单实例
  3. Android学习笔记---使用HttpClient发送POST和GET请求
  4. (二)在Android硬件抽象层增加接口模块访问硬件驱动程序
  5. android UiAutomator自定义快速调试类
  6. android开发AIDL实例
  7. Android(安卓)设计模式 之 观察者模式
  8. Android教程之如何使用自定义字体
  9. 浅析android 控件listView中的设计模式

随机推荐

  1. 使用curl加载xsl页面会返回实际的基数错
  2. 传入连接对象或在类中创建它? (OOP)
  3. 如何调试PHP之XDebug
  4. 防止Ajax创建表单的默认值
  5. php逐个汉字遍历字符串
  6. thinkPHP 获得当前请求的全部常量信息
  7. 如何使用ajax向php发送与每个按钮相关的
  8. PHP展示KMP拓展算法思想
  9. php标准库 SPL 数据结构之-----SplDoubly
  10. PHPCMS V9 的手机门户wap绑定单页面