我试图围绕Android的Activity启动模式的不同选项(参见文档:Tasks and Back Stack)
根据文档,在启动标记为“singleTask”的活动时:
“...相反,要么为浏览器启动新任务,要么如果浏览器已经在后台运行任务,那么该任务将被提前处理新意图 . ”
根据描述singleTask的方式,创建新任务,或者,如果活动已经存在于某个其他任务中,则该任务被提前 .
如果浏览器活动的实例(例如)已存在于我的应用程序活动的同一任务(堆栈)中(但不在前台),会发生什么?怎么提出来的?这在文档中没有描述 .
2 回答
您询问:
浏览器活动的实例(使用您的示例)不可能存在于您应用的任务堆栈中,因为
Activity
已使用singleTask
启动模式定义,并且与您应用中的其他活动具有不同的taskAffinity
. 因此,每当启动浏览器活动时,它将始终启动到自己的任务中,而不是启动到您的任务中 ."SingleTask" - 系统在新任务的根目录下创建活动,并将意图路由到该任务 . 但是, if an instance of the activity already exists, the system routes the intent to existing instance 通过调用其onNewIntent()方法,而不是创建一个新方法 .
注意:SingleTask和SingleInstance用于专门的启动 . 不建议用于一般用途
来自此链接http://developer.android.com/guide/topics/manifest/activity-element.html