FLAG_ACTIVITY_NEW_TASK
的android文档说:
使用此标志时,如果任务已在您正在启动的活动上运行,则不会启动新活动;相反,当前任务将简单地以最后一个状态显示在屏幕的前面。
我做了一个演示来实现这个,有两个应用程序:A和B. A包含活动A1,B包含活动B1,B2。
我按照以下步骤操作:Home Screen(Application A icon) --> A1 (FLAG_ACTIVITY_NEW_TASK to start B1)--> B1 -->B2 --> Home Screen(Application B icon)-->
,根据我的理解,点击启动器中的应用程序B图标启动活动B1将使用FLAG_ACTIVITY_NEW_TASK
,对吧?所以它应该把任务开始前面,但不幸的是,事实是一个新的活动B1启动,B任务堆栈是这样的:(底部)B1 B2 B1。
当我点击启动器中的应用程序B图标时,如何让现有任务显示在前面
答案 0 :(得分:0)
A和B是两个不同的应用程序,对吧? 这意味着两者都将作为一个单独的进程执行,并且表现为单独的任务。
因此,当您将FLAG_ACTIVITY_NEW_TASK设置为A时,它将为A创建一个单独的任务,并将其作为根活动或将现有的A实例带到前面。
当B从启动器启动时,根据android正常启动器行为,它将作为一个单独的任务启动,B将具有单独的堆栈。