Android - 使用FLAG_ACTIVITY_NEW_TASK

Cyg*_*nus 8 flags android android-intent

我创建了一个带按钮的简单应用程序.单击它会触发通知,单击通知会启动同一应用程序的新实例.但是,我希望点击通知应该会将我带回到触发通知的应用程序实例.为此,我咨询了Android文档的FLAG_ACTIVITY_NEW_TASK标志 -

使用此标志时,如果任务已在您正在启动的活动上运行,则不会启动新活动; 相反,当前任务将简单地以其最后一个状态被带到屏幕的前面.请参阅FLAG_ACTIVITY_MULTIPLE_TASK以获取禁用此行为的标志.

基于此,在创建传递给PendingIntent的意图时,我设置了这个标志.但是,单击通知仍会启动应用程序的新实例.

我究竟做错了什么 ?

Gra*_*eme 5

请记住,当您单击Notification它时,是从Context该意图启动的。上下文没有任务的活动(实际上,这将是一个空白任务)。

结果是运行同一版本的两个版本Activity(尽管仍然只有您的一个实例Application)。每个人Activity运行的都不一样Task

如果您不需要任何堆栈中相同类型的重复活动,则可以在此处使用答案:

/sf/answers/162891921/

否则,有许多方法可以“解决”此问题,包括单例变量和跟踪哪些活动处于运行状态的应用程序上下文方法。

您可能需要搜索和完善这些问题。