从通知启动活动时的奇怪行为

时间:2015-04-01 04:25:14

标签: android android-intent notifications

我正在使用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>

我该如何解决这个问题?简而言之,我只想在点击通知时打开一个新活动。

0 个答案:

没有答案