我正在尝试围绕Android的活动启动模式的不同选项(请参阅文档:任务和后退堆栈
根据文档,启动标记为"singleTask"的活动时:
"...相反,要么为浏览器启动一个新任务,要么如果 浏览器已经有一个任务在后台运行,该任务是 提出来处理新的意图。
根据 singleTask 的描述方式,要么创建一个新任务,要么,如果活动已存在于其他任务中,则提前执行该任务。
如果浏览器活动的实例(例如)已存在于我的应用活动的同一任务(堆栈)(但不在前台)中,会发生什么情况? 它是如何提出的?文档中未对此进行描述。
你问:
如果浏览器活动的实例(例如)会发生什么 已存在于我的应用活动的同一任务(堆栈)中(但不是 在前景中)?它是如何提出的?这没有描述 在文档中。
浏览器活动的实例(使用您的示例)不可能存在于应用程序的任务堆栈中,因为该Activity
已使用启动模式定义singleTask
并且与应用程序中的其他活动具有不同的taskAffinity
。因此,无论何时启动浏览器活动,它都将始终启动到其自己的任务中,而不是启动到您的任务中。
"SingleTask" - 系统在新任务的根目录下创建活动,并将意图路由到该任务。但是,如果活动的实例已存在,则系统会通过调用其 onNewIntent() 方法将意向路由到现有实例,而不是创建新实例。
注意:SingleTask 和 SingleInstance 用于专用启动。不建议一般使用
从这个链接 http://developer.android.com/guide/topics/manifest/activity-element.html