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)
相关文章推荐
- Android初学习 - FLAG_ACTIVITY_NEW_TASK和singleTask一起使用
- Android Intent.FLAG_ACTIVITY_NEW_TASK的个人理解
- Android非5.0系统下singleTask singleInstance startActivityForResult
- Android Activity launchMode singleTask/singleTop/singleInstance/standard 讲解
- android Activity的四种启动模式详讲 singleTop standard singleTask singleInstance
- Intent.FLAG_ACTIVITY_NEW_TASK和android:taskAffinity
- Android应用程序模块详解(任务、启动模式、进程和线程、FLAG_ACTIVITY_NEW_TASK)
- 【Android】关于FLAG_ACTIVITY_NEW_TASK 和 taskAffinity
- FLAG_ACTIVITY_NEW_TASK和singleTask一起使用的意义
- android intent.FLAG_ACTIVITY_NEW_TASK 不新建tast
- Understand Android Activity's launchMode: standard, singleTop, singleTask and singleInstance
- Understand Android Activity's launchMode: standard, singleTop, singleTask and singleInstance
- 启动模式"singleTask"和FLAG_ACTIVITY_NEW_TASK具有不同的行为!
- Android下Affinities和Task(FLAG_ACTIVITY_NEW_TASK)
- android-activity之默认启动模式和FLAG_ACTIVITY_NEW_TASK
- android.util.AndroidRuntimeException Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want? com.uethinking.microvideo.manag
- 理解Android Activity的启动模式:standard, singleTop, singleTask 以及 singleInstance
- 启动模式"singleTask"和FLAG_ACTIVITY_NEW_TASK具有不同的行为!
- android 加入FLAG_ACTIVITY_NEW_TASK
- Android中的task作用和Activity启动模式以及各种启动Flag的含义