我试图围绕Android的“活动”启动模式的不同选项进行思考(请参见文档:Tasks and Back Stack
根据文档,在启动标记为“ singleTask”的活动时:
“ ...而是为浏览器启动一个新任务,或者,如果
浏览器已经有一个任务在后台运行,该任务是
提出来处理新意图。”
根据singleTask的描述方式,或者创建一个新任务,或者,如果该活动已经存在于其他任务中,则将该任务提出。
如果我的应用程序活动的同一任务(堆栈)中已经存在(例如)浏览器活动的实例(例如,但不存在于前台),该怎么办?如何提出?这在文档中没有描述。
最佳答案
你问:
例如,在浏览器活动实例的情况下会发生什么?
已经存在于应用程序活动的同一任务(堆栈)中(但不存在)
在前台)?如何提出?没有描述
在文档中。
应用程序的任务堆栈中不可能存在“浏览器”活动的实例(以您的示例为例),因为该Activity
已用singleTask
启动模式定义,并且与其他活动具有不同的taskAffinity
在您的应用中。因此,无论何时启动浏览器活动,都将始终将其启动到自己的任务中,而不是您的任务中。