2

このように通知バーに通知を表示しています。私はそれらを取得していますが、複数の通知を表示することはできません。一度に 1 つだけです。新しいものが来ると、前のものは消えます。問題は何でしょうか?

 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

必要な通知の数に応じて、いくつかの解決策があります。通知にインクリメントするIDを追加して、別の名前を付けて、他の通知を同じIDに置き換えないようにするか、最大2つの通知のみが必要な場合は、文字列/変数の異なる名前で2番目の通知を作成するだけです使用しています。

ID の増分については、こちらをご覧ください。

Android: 複数の通知の管理

2 回目または 3 回目の通知だけが必要な場合は、文字列を次のように変更します。

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 Support Library」の最新の安定版リリースを使用する必要があります。

「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 に答える