我试图围绕Android的“活动”启动模式的不同选项进行思考(请参见文档:Tasks and Back Stack

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


  “ ...而是为浏览器启动一个新任务,或者,如果
  浏览器已经有一个任务在后台运行,该任务是
  提出来处理新意图。”


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

如果我的应用程序活动的同一任务(堆栈)中已经存在(例如)浏览器活动的实例(例如,但不存在于前台),该怎么办?如何提出?这在文档中没有描述。

最佳答案

你问:


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


应用程序的任务堆栈中不可能存在“浏览器”活动的实例(以您的示例为例),因为该Activity已用singleTask启动模式定义,并且与其他活动具有不同的taskAffinity在您的应用中。因此,无论何时启动浏览器活动,都将始终将其启动到自己的任务中,而不是您的任务中。

08-04 01:49