0

我遇到了一些问题,我正在处理的应用程序的流程。 基本上,我有一个始终保存通知的服务,按通知应该返回到应用程序的最近活动,而不重新打开它(意味着它会恢复)。 此外,对于特定的活动(也可能是其他活动),我需要点击后退按钮将退出应用程序(和服务),以便下次终端用户通过启动器启动或通过长按主页按钮,它会回到第一个活动。android - 从服务或通知返回到应用程序

总之,要求是:

  • 服务的通知点击 - >恢复当前的活动,没有创造新的活动。
  • 返回点击一个特定的活动 - >完全关闭应用程序(清除所有应用程序的堆栈)。

所以,例如,如果我有活性的,其调用活动B(其为特殊的活性): 如果最终用户点击家,并且然后经由所述通知返回给应用程序(或通过启动启动器/长按Home键),它将返回到他离开它的活动B的确切状态。 另外,如果最终用户按下了活动B上的后退按钮,则应用程序在下次打开应用程序时关闭(服务和通知将消失)(无论如何),他将返回活动A 。我试过在活动B上使用“singleInstance”,但它总是回到活动B,因为它在它自己的任务中,不管我使用哪个标志(我试过FLAG_ACTIVITY_REORDER_TO_FRONT和其他一些标志标志)。 而不使用它,通知将打开活动B的新实例。

任何人都可以请帮忙吗?

回答

0

好吧,即使它不完全是答案,对于我的情况,我已经使用“singleTop”作为活动B,并选择在移动到活动B时关闭活动A.

1

另一种方法是设置通知的目的是开始一个新的假活动,该活动一旦创建就会关闭。 意图还将具有“FLAG_ACTIVITY_NEW_TASK”标志。

希望这种方法适用于所有人。 太糟糕了,这个解决方案看起来更像是一个解决方案而不是真正的解决方案。

另一种方法是此链接: Change notification intent in Android

1

果冻豆(安卓4.1),现在又推出了新的API为这个确切的问题:

http://www.youtube.com/watch?feature=player_embedded&v=Yc8YrVc47TI#t=830s

然而

,我不知道我了解如何使用它以及它如何工作。是否有可能重新创建整个活动的堆栈?这不是很有问题,因为它们可能包含之前没有的数据(因为它们被刷新)?

它也听起来有问题,因为这意味着我需要监视所有操作以便稍后恢复它们。

+1

他们还制作了导航视频,看起来他们不希望通知返回到现有任务。相反,他们希望它开始一项新任务,以取代之前的任务。我认为这是错误的,不直观。这里是链接:https://developers.google.com/events/io/sessions/gooio2012/114/。如果其他人想到我的问题的答案,请写下来。 – 2012-07-06 10:44:43

相关问题