我的程序有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
你知道为什么吗?
也许我认为意图是错误的......
答案 0 :(得分:0)
来自http://developer.android.com/guide/topics/manifest/activity-element.html
的指南类似地,也可以创建“singleTop”活动的新实例来处理新意图。但是,如果目标任务已经在其堆栈顶部具有活动的现有实例,则该实例将接收新意图(在onNewIntent()调用中);未创建新实例。在其他情况下 - 例如,如果“singleTop”活动的现有实例在目标任务中,但不在堆栈顶部,或者它位于堆栈顶部,而不是在目标任务中 - 将创建新实例并将其推送到堆栈中。
因此只有在堆栈顶部存在活动的现有实例时才会调用onNewIntent。