0

我的程序有 MainActivity 和 myService。

MainActivity 是'singletop',并且 MainActivity 覆盖onNewIntent类。

myService 是“前台”服务。它弹出一个通知。通知中有Intent(this,MainActivity.class)在pendingIntent 中启动MainActivity。

我的程序流程是

从图标启动(开始) MainActivity ( startService) myService ( send broadcast) 广播class(start MainActivity)onNewIntent@MainActivity

当程序像这样的流程启动时,onNewIntent 被准确地调用。

但是当程序从通知启动时,onNewIntent 永远不会被调用。

从通知启动(start) MainActivity (startService) myService (send broadcast) broadcast class(start MainActivity)onNewIntent@MainActivity

4

1 回答 1

0

来自http://developer.android.com/guide/topics/manifest/activity-element.html上的指南

类似地,也可以创建“singleTop”活动的新实例来处理新意图。但是,如果目标任务在其堆栈顶部已经有活动的现有实例,则该实例将接收新意图(在 onNewIntent() 调用中);未创建新实例。在其他情况下——例如,如果“singleTop”活动的现有实例在目标任务中,但不在堆栈的顶部,或者如果它在堆栈的顶部,但不在目标任务中 -将创建新实例并将其推送到堆栈上。

因此,只有在堆栈顶部存在活动的现有实例时才会调用 onNewIntent。

于 2013-02-28T05:04:24.250 回答