2

我正在尝试围绕 Android 的 Activity 启动模式的不同选项(请参阅文档:Tasks and Back Stack

根据文档,启动标记为“singleTask”的活动时:

“......相反,要么为浏览器启动一个新任务,要么,如果浏览器已经在后台运行了一个任务,则该任务被提出来处理新的意图。”

根据描述 singleTask 的方式,要么创建一个新任务,要么,如果该活动已经存在于某个其他任务中,则该任务被提出。

如果浏览器活动的实例(例如)已经存在于我的应用活动的同一任务(堆栈)中(但不在前台),会发生什么?它是如何提出来的?这在文档中没有描述。

4

2 回答 2

1

您询问:

如果浏览器活动的实例(例如)已经存在于我的应用活动的同一任务(堆栈)中(但不在前台),会发生什么?它是如何提出来的?这在文档中没有描述。

浏览器活动的实例(使用您的示例)不可能存在于您的应用程序的任务堆栈中,因为它Activity已使用singleTask启动模式定义并且与taskAffinity您的应用程序中的其他活动不同。因此,每当启动浏览器活动时,它总是会启动到它自己的任务中,而不是启动到您的任务中。

于 2017-08-04T12:52:19.157 回答
0

“SingleTask” - 系统在新任务的根部创建活动并将意图路由到它。但是,如果活动的实例已经存在,系统会通过调用其 onNewIntent() 方法将意图路由到现有实例,而不是创建一个新实例。

注意: SingleTask 和 SingleInstance 用于专门的启动。一般不推荐使用

从这个链接 http://developer.android.com/guide/topics/manifest/activity-element.html

于 2014-04-05T23:15:11.593 回答