我正在使用Parse向Android手机发送通知,当我收到推送时,我会使用以下功能生成通知。
private void generateNotification(Context context, String title, Intent intent, boolean hasSound) {
int NOTIFICATION_ID = ("onccent" + System.currentTimeMillis()).hashCode();
PendingIntent contentIntent = PendingIntent.getActivity(context, NOTIFICATION_ID, intent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationManager mNotifM = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context).setSmallIcon(R.drawable.ic_launcher).setContentTitle(context.getString(R.string.app_name)).setContentText(title);
mBuilder.setAutoCancel(true);
mBuilder.setContentIntent(contentIntent);
if (!hasSound) {
mBuilder.setDefaults(Notification.DEFAULT_SOUND);
}
mNotifM.notify(NOTIFICATION_ID, mBuilder.build());
}
意图是显示消息的活动的意图,并让它称之为活动B.我将使用活动A来表示家庭活动。
问题是:当A存在时,一切运作良好。单击通知时,堆栈变为
A -> B1
然后点击另一个:
A -> B1 -> B2
这就是我的期望。但是,当我 kill 整个应用程序然后单击第一个通知时。它将打开一个B,但以下通知只会将我的应用程序放在前面,而不会打开一个新的B.
如果没有A,似乎有些东西不起作用。如果A不存在于堆栈中,我设法打开A,以便将A定义为B的父活动。通知有效,但似乎以前的所有活动都消失了。 / p>
我该如何解决这个问题?简而言之,我只想在点击通知时打开一个新活动。