所以我有一个基本的通知应用程序。这是当前的配置详细信息:
GCMIntentService
NotificationActivity
:
---->ViewMessageActivity
:
---->ViewUserDetailsActivity
GCMIntentService
被配置为执行以下操作:收到通知后,PendingIntent.FLAG_ONE_SHOT
会创建一个挂起的意图,并且该意图会添加Intent.FLAG_ACTIVITY_NEW_TASK
标志。
目前,我NotificationActivity
在我的清单中定义为android:launchMode="singleInstance"
. 如果我将它设置为android:launchMode="singleTop"
,当用户单击通知时,可能会发生一些事情,具体取决于 Android 版本(或者我的两台设备显示)
- 在 Android < 2.3 中,如果我在另一个活动中(比如说
ViewMessageActivity
)并且我从阴影中按下通知,则什么也不会发生(我没有收到任何来自onNewIntent
) - 在 Android 4.2(不确定其他版本)中,如果我在另一个活动中(比如
ViewMessageActivity
)并且我从阴影中按下通知,则什么也没有发生(我没有收到来自 的任何东西onNewIntent
)并且通知从阴影中消失 - 如果我在
NotificationActivity
所有版本中都很好用
所以这导致我将其设置为singleInstance
而不是singleTop
. 现在,当用户按下通知并且用户处于不同的活动中(例如ViewMessageActivity
)时,通知意图会得到适当处理但是,我NotificationActivity
尝试为ViewMessageActivity
在通知阴影中单击的消息创建一个新实例,但它不会创建一个新的活动。相反,显示我已经打开的实例。我尝试添加诸如Intent.FLAG_ACTIVITY_NEW_TASK
但 myonCreate
或onNewIntent
方法都没有在 my 中调用的标志ViewMessageActivity
。
理想情况下,这就是我希望发生的事情:当用户从ViewMessageActivity
主要活动 ( NotificationActivity
ListView 视图onNewIntent
将创建另一个 ViewMessageActivity 实例。注意:我没有为任何其他活动设置启动模式选项。
有什么建议么?
文斯