【发布时间】:2017-09-04 10:05:44
【问题描述】:
我有一个在后台运行服务(音频播放器)并在运行时显示持续通知的应用程序。当用户单击通知时,我想打开播放器活动而不显示在最近列表中并且不将应用程序的其余部分放在前面,因此当用户按下后退按钮时,他们会直接转到应用程序以前都在用,不管什么。我尝试了三种不同的方法,但都没有奏效。
- 以
FLAG_ACTIVITY_NEW_TASK开始一个意图。如果存在现有任务,则将其置于最前面。当用户按下后退按钮时,播放器 Activity 完成并显示所述任务中的前一个 Activity,而不是返回到点击通知时处于前台的应用。 - 使用以下标志启动意图:
FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_MULTIPLE_TASK | FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS。现有任务没有被带到前面,并且后退按钮按预期工作。但是,此活动完成后,该应用程序将完全从最近列表中消失。恢复它的唯一方法是从启动器图标启动它,这会将现有任务带到前台,就像从最近打开的一样。 - 使用以下标志启动意图:
FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_MULTIPLE_TASK | FLAG_ACTIVITY_NO_HISTORY。该活动从一项新任务开始,但该任务取代了最近列表中的主要任务。添加FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS使其行为与前一种情况完全相同。
是否有任何适当的方法来进行这种导航,或者我应该放弃尝试,只是让它将整个现有任务带到最前面,并在其上启动玩家活动,如案例 1?
【问题讨论】:
标签: android android-intent android-activity