Activity的clearTaskOnLaunch属性

来源:互联网 发布:mysql right函数 编辑:程序博客网 时间:2024/06/08 07:40

Activity默认情况下,android:clearTaskOnLaunch的值是false。

  此时,比如你的应用里有N个Activity,其中有个是设置页面,你从主页面进入到设置页面,设置了一些东西之后,突然按了下Home键,回到了Android的Home,这时候你做了些别的事情,然后你再次点击你的应用程序图标进入你的应用程序的时候,依旧是回到设置页面,继续先前的工作,这也是大多数应用的情况。

  但是,如果你把android:clearTaskOnLaunch的值设为true呢?

顾名思义,它就在启动的时候把Task给清空了,就是你再次点击应用程序图标进入你的应用程序的时候是回到应用程序的第一个页面,而不会回到先前的设置页面。

  至于,什么情况下要这么用?像Android原生的相机应用,谷歌的Zxing项目(也就是Android上的“条码扫描器”)它就是这样的,不管你什么时候重新进入该应用,它显示的都是应用的第一个界面。

  不过呢,这也有意外情况,就是即使你把android:clearTaskOnLaunch的值设为了true,但是在Home界面长按Home键,可以调出一个你最近进行的任务,从那个里面点击你的应用是可以回到先前保留的状态的,也就是无视android:clearTaskOnLaunch了,至于为什么,目前还没搞明白,有兴趣的可以去官方查看一下文档,我没有仔细去看。

  关于android:clearTaskOnLaunch的官方文档地址:

  http://developer.android.com/intl/zh-CN/guide/topics/manifest/activity-element.html#clear

除了上述情况,还有一种情况就是使用startActivityForResult跳转时。

打开应用进入Activity A,然后再打开ActivityB,按Home键回到桌面。这时候,如果点击桌面图标,正常情况则回到ActivityB。但是如果你加了这个属性clearTaskOnLaunch,则会开启ActivityA,而从任务管理器打开的话,还是回到B。

如果从A打开B的时候,调用的startActivityForResult,则任何时候都会回到B,就是说clearTaskOnLaunch也是无效的。


来自:

雨点点的博客http://blog.sina.com.cn/gsh85


0 0
原创粉丝点击