PendingIntent通知只发生一次

时间:2016-01-18 16:35:02

标签: android android-intent android-pendingintent notificationmanager

我开发了一个Android应用程序。这个应用程序会生成通知,我也会解雇它们并在解雇时采取行动。

如果我收到一份通知并将其解雇,则会收到意图。如果我收到一个,解雇,收到一个,解雇......它会起作用。

但是如果我收到5个通知并开始解雇它们,一旦我解雇第一个通知,就会收到意图,但从未发过,我

我被期望得到5个意图作为5个解雇。在我的情况下,通知管理员解雇他们,但应用程序只收到一个。

private void singleNotification() {

    Intent resintent = new Intent(NOTIFICATION_DELETED_ACTION);
    resintent.putExtra(rIdDismiss",mNotification.get(mNotification.size() - 1).mTwitterNotifId);

    PendingIntent pendintIntent = PendingIntent.getBroadcast(mContext, 0, resintent, PendingIntent.FLAG_CANCEL_CURRENT);
    mContext.registerReceiver(receiver, new IntentFilter(NOTIFICATION_DELETED_ACTION));

    Notification notification = new Notification(android.R.drawable.btn_default,
            mNotification.get(mNotification.size() - 1).mTwitterNotifTitle.toString(), System.currentTimeMillis());

    Intent notificationIntent = new Intent(mContext, TwitterHomeActivity.class);
    notificationIntent.putExtra("IS_NOTIFICATION", true);
    notificationIntent.putExtra("Title", mContext.getResources().getString(R.string.app_name));
    notificationIntent.putExtra("Text", mNotification.get(mNotification.size() - 1).mTwitterNotifText.toString());

    notificationIntent.putExtra("Url", mNotification.get(mNotification.size() - 1).mTwitterImgUrl.toString());
    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
            Intent.FLAG_ACTIVITY_CLEAR_TASK);
    PendingIntent contentIntent = PendingIntent.getActivity(mContext, mNotification.get(mNotification.size()-1).mTwitterNotifUniqueId, notificationIntent,PendingIntent.FLAG_CANCEL_CURRENT);// );

    notification.setLatestEventInfo(mContext,
            mContext.getResources().getString(R.string.app_name),
            mNotification.get(mNotification.size()-1).mTwitterNotifText.toString(),
            contentIntent);

    notification.contentIntent = contentIntent;
    notification.defaults |= Notification.DEFAULT_SOUND;
    notification.flags |= Notification.FLAG_AUTO_CANCEL;
    notification.deleteIntent = pendintIntent;

    mNotificationManager.notify(mNotification.get(mNotification.size() - 1).mTwitterNotifId, notification);
}

创建新通知时,我正在做:

 mNotificationManager = (NotificationManager)
                mContext.getSystemService(Context.NOTIFICATION_SERVICE);

NotificationManager得到:

{{1}}

默认行为正常,接收,解雇,,但我还需要能够接收,接收,接收,解雇,解雇,解雇

任何想法

1 个答案:

答案 0 :(得分:0)

如果您收到多个通知,而且您无法解除所有通知。然后问题可以是传递给您的待定意图的ID。您需要为将从定义的待定意图生成的每个通知传递不同的ID。请更改此代码行。

PendingIntent pendintIntent = PendingIntent.getBroadcast(mContext, id, resintent, PendingIntent.FLAG_CANCEL_CURRENT);

其中id每次都是不同的int值,而不是总是0。