不能打电话给新的内容

时间:2013-02-28 02:47:21

标签: android

我的程序有MainActivity和myService。

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

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

我的程序流程是

从图标启动(开始)MainActivity(startService)myService(发送广播)广播类(启动MainActivity)onNewIntent @ MainActivity

当程序像这个流程一样启动时,会完全调用onNewIntent。

但是当程序从通知发出时, onNewIntent从未打过电话。

从Notification(start)启动MainActivity(startService)myService(发送广播)广播类(启动MainActivity)onNewIntent @ MainActivity

你知道为什么吗?

也许我认为意图是错误的......

1 个答案:

答案 0 :(得分:0)

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

的指南

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

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