2

我在这样的通知栏中显示通知。我得到了那些,但我不能在那里显示多个通知,一次只能显示一个。一个新的来了,前一个就走了。会有什么问题?

 public void createNotificationRecever(Context context, String payload) {
        Toast.makeText(context, commentor  +  "commented on your post "   ,Toast.LENGTH_LONG).show();
        //New message received
        NotificationManager notificationManager = (NotificationManager) context
                .getSystemService(Context.NOTIFICATION_SERVICE);
        Notification notification = new Notification(R.drawable.flag,
                payload, System.currentTimeMillis());
        // Hide the notification after its selected
        notification.flags |= Notification.FLAG_AUTO_CANCEL;

        Intent intent = new Intent(context, MessageReceivedActivity.class);
        intent.putExtra("id", groupid);
        intent.putExtra("userid", text);
        intent.putExtra("cname", groupname);
        intent.putExtra("image", "");

        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
                intent, 0);
        notification.setLatestEventInfo(context, "Message",
                payload, pendingIntent);         
        notificationManager.notify(0, notification);


    }}
4

4 回答 4

5

使用此代码它将在列表中带来多个通知 int NOTIFICATION_ID = 0; notificationManager.notify(NOTIFICATION_ID, notification2); NOTIFICATION_ID++

于 2014-09-25T04:40:49.500 回答
5

根据您需要的通知数量,有几种解决方案。您可以在通知中添加一个递增的 id,以便它具有不同的名称,因此不会用相同的 id 替换另一个,或者如果您最多只需要两个通知,那么只需使用不同名称的字符串/变量创建第二个通知您正在使用。

在这里查看 ID 增量:

Android:管理多个通知

如果您只需要第二次或第三次通知,请将您的字符串更改为以下内容,例如:

public void createNotificationRecever(Context context2, String payload2) {
    Toast.makeText(context2, commentor  +  "commented on your post "   ,Toast.LENGTH_LONG).show();
    //New message received
    NotificationManager notificationManager = (NotificationManager) context2
            .getSystemService(Context.NOTIFICATION_SERVICE);
    Notification notification2 = new Notification(R.drawable.flag,
            payload2, System.currentTimeMillis());
    // Hide the notification after its selected
    notification.flags |= Notification.FLAG_AUTO_CANCEL;

    Intent intent = new Intent(context2, MessageReceivedActivity.class);
    intent.putExtra("id", groupid2);
    intent.putExtra("userid", text2);
    intent.putExtra("cname", groupname2);
    intent.putExtra("image", "");

    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
            intent, 0);
    notification.setLatestEventInfo(context, "Message",
            payload, pendingIntent);         
    notificationManager.notify(0, notification2);


}}

我希望你能明白要点,它可以帮助你。

于 2012-09-27T02:33:23.090 回答
0

@SunnySonic,您需要使用“Android 支持库”的最新稳定版本。

要下载“Android Support Libraray”的最新稳定版本,转到 SDK Manager -> Extras -> 点击 Android Support Library 并更新它。

并转到 build.gradle 并在“依赖项”下更改版本。

dependencies {
    compile 'com.android.support:support-v4:22.1.1'  //<-change this
    compile files('libs/bolts-android-1.1.4.jar')
    compile files('libs/gcm.jar')

}
于 2015-05-20T12:13:28.877 回答
0

您可以在 notify 方法中生成随机数作为 NotificationId。

notificationManager.notify(generateRandom(), notificationBuilder.build());

public int generateRandom()
{
    Random rn = new Random();
    int n = maximum - minimum + 1;
    int i = rn.nextInt() % n;
    return  minimum + i;

}
于 2016-10-20T11:10:43.150 回答