您的位置:首页 > 移动开发 > Android开发

Android SingleTask 和 SingleInstance 的理解 以及 FLAG_ACTIVITY_NEW_TASK

2014-08-22 15:17 381 查看

概述

Android中有一个重要的思想就是复用, 例如已经启动了浏览器应用, 这个时候微信要打开一个网页, 那么并不会再新建一个浏览器应用打开网页, 而是调用已经打开的浏览器去打开这个网页。

如果要实现上面复用的这个目的, 有两种方法。

1: 使用SingleInstance, 系统中有且唯一的一个Activity。



2: SingleTask 的使用(复用的东西一般是别人的组件, 在不同的App), 系统会复用已经启动的Activity。



疑问的情况:

1: FLAG_ACTIVITY_NEW_TASK 单独使用, 假设调用的Activity没有SingleTask标志, 那么久代表这个Activity在Task中可以存在多个。



这种情况看见, 并没有复用已经存在的ActivityA, 而是新建了一个ActivityA.

2: 不使用launchMode和flag



ActivityA 在App1中定义。

3: FLAG_ACTIVITY_NEW_TASK 同 SingleTask 组合使用, 其实和 SingleTask 单独使用无任何区别。

总结

SingleTask -- 望文生义一个Task中只有唯一的一个Activity(系统中有且仅有这一个Activity)

SingleInstance -- 这个名称没有上面一个形象, 它表示一个Task中有且仅有这一个Activity(同上一样),并且这个Task中仅有这一个Activity.

FLAG_ACTIVITY_NEW_TASK -- 这是一个标志,表示要新建一个Task, 如果在同一个应用中 ActivityA 启动 ActivityB, 那么这个标志可以忽略。(它的使用场景在应用A启动应用B的时候添加, 例如桌面启动的应用都会添加这个flag)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐