合理应用activity的启动方式优化程序内存(结合android的任务和回退栈)

来源:互联网 发布:es6类数组对象转数组 编辑:程序博客网 时间:2024/06/04 01:36

  在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。

Activity启动方式有四种,分别是:

standard
singleTop
singleTask
singleInstance

  可以根据实际的需求为Activity设置对应的启动模式,从而可以避免创建大量重复的Activity等问题

起作用的场合就是我们每次startActivity时~~~

standard

每次通过这种模式来启动目标activity时,android总会为目标activity创建一个新的实例,并将该activity添加到当前task栈中——这种模式不会启动新的task,新的activity添加到原有的task中。

singleTop

这种模式与standard模式基本相似,但有一点不同,当将要被启动的目标activity已经位于task栈顶的时,系统不会重新创建目标activity的实例,而是直接使用已有的activity实例

singleTask

采用这种模式加载的activity在同一个task内只有一个实例,当系统采用singleTask模式启动目标activity时,可分为如下三种情况:

  • 如果将要启动的目标activity不存在。系统会创建目标activity的实例,并将他加入task的栈顶。

  • 如果将要启动的目标activity已经位于栈顶,与singletop情况类似。

  • 如果将要启动的目标activity已经存在,但是不位于栈顶,则它之上的activity都出栈,从而是目标activity到达栈顶。

singleInstance

只有一个实例,单独在一个task中,自己对应一个回退栈。

感恩:
http://blog.csdn.net/shinay/article/details/7898492
http://www.cnblogs.com/fanchangfa/archive/2012/08/25/2657012.html
http://www.cnblogs.com/meizixiong/archive/2013/07/03/3170591.html

0 0