Android: Aktualisieren Sie bestimmte Benachrichtigungen von mehreren Benachrichtigungen mit Remoteview

Ich erstelle eine Anwendung, die Benachrichtigungen enthält, die über ein Wiedergabe- / Pausensymbol verfügen. Es funktioniert perfekt, wenn es nur eine Benachrichtigung gibt, die nur eine Benachrichtigungs-ID hat. Das Wiedergabe- / Pausensymbol wird durch nur eine Benachrichtigungs-ID geändert, es treten jedoch Probleme mit mehreren Benachrichtigungen auf. Wenn mehrere Benachrichtigungen vorhanden sind, wird für jede Benachrichtigung ein Wiedergabe- / Pausensymbol angezeigt. Wenn ich auf das Wiedergabe- / Pausensymbol in einer der Benachrichtigungen klicke, ändert sich nur das oberste Benachrichtigungssymbol im Benachrichtigungsstapel. Ich weiß, dass dieses Problem auf die Benachrichtigungs-ID zurückzuführen ist, die es durch Klicken auf eine Benachrichtigung erhalten hat. Ich möchte die ID für alle Benachrichtigungen beim Klicken auf das Wiedergabe- / Pausensymbol erhalten. Ich habe es mit einigen Änderungen des Inhalts von pendingIntent versucht, aber noch nicht gefunden eine genaue Lösung.

Ich möchte wissen ,wird eine Benachrichtigung angezeigt, wenn Sie auf das Wiedergabe- / Pausensymbol klicken?, Also kann ich das Symbol ändern oder diese Benachrichtigung über die Benachrichtigungs-ID aktualisieren. Es ist erforderlich, die Benachrichtigung über die Benachrichtigungs-ID zu aktualisieren.

Ich habe die Remote-Ansicht verwendet, um das Kostümlayout zu benachrichtigen. Der Code ist unter

NotificationCode

    RemoteViews mRemoteViews1 = null;
    PendingIntent pendingIntent = null;
    PendingIntent pendingIntent1 = null;
    PendingIntent pendingIntent2 = null;
    PendingIntent pendingIntent3 = null;
    PendingIntent pendingIntent4 = null;
    PendingIntent pendingIntent5 = null;

    if (mRemoteViews1 == null) {
        Log.d("LOG", "mRemoteViews is null");

            mRemoteViews1 = new RemoteViews(getPackageName(),
                    R.layout.custom_notification);

    } else {
        if (mState == palyer.Paused || mState == palyer.Stopped) {

            try {
                Log.e("LOG", "State.Paused || State.Stopped");
                mRemoteViews1.setImageViewResource(R.id.playpush,
                        R.drawable.playdetailfornoti);  // play icon

            } catch (Exception e) {}

        } else if (mState == palyer.Playing) {
            try {
                Log.e("LOG", "State.Playing");
                mRemoteViews1.setImageViewResource(R.id.playpush,
                        R.drawable.pushdetail);   // pushicon

            } catch (Exception e) {}
        } else if (mState == palyer.Retrieving) {
            try {
                Log.e("LOG", "else Retrieving");
                mRemoteViews1.setImageViewResource(R.id.playpush,
                        R.drawable.playdetailfornoti); // play icon

            } catch (Exception e) {}
        }
        else {
            try {
                Log.e("LOG", "else");
                mRemoteViews1.setImageViewResource(R.id.playpush,
                        R.drawable.pushdetail);   // pushicon

            } catch (Exception e) {}
        }
    }

    Intent intent = new Intent(ACTION_TOGGLE_PLAYBACK);
    Intent intent1 = new Intent(CLOSE_PUSH_NOTIFICATION);
    Intent intent2 = new Intent(ACTION_NEXT);
    Intent intent3 = new Intent(ACTION_PREVIOUS);
    Intent intent4 = new Intent(ACTION_STOP);
    Intent intent5 = new Intent(ACTION_PLAY_NOTIFICATION_START);

    Intent newintent = new Intent(this, Splace.class);
    newintent.putExtra("newsId",_id);
    newintent.putExtra("message",title);
    newintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 
            Intent.FLAG_ACTIVITY_SINGLE_TOP);
    newintent.setAction("actionstring" + System.currentTimeMillis());

    pendingIntent = PendingIntent.getService(getApplicationContext(),
            REQUEST_CODE_STOP, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    pendingIntent1 = PendingIntent.getService(getApplicationContext(), 0,
            intent1, 0);
    pendingIntent2 = PendingIntent.getService(getApplicationContext(),
            REQUEST_CODE_STOP, intent2, PendingIntent.FLAG_UPDATE_CURRENT);
    pendingIntent3 = PendingIntent.getService(getApplicationContext(),
            REQUEST_CODE_STOP, intent3, PendingIntent.FLAG_UPDATE_CURRENT);
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
            newintent, 0);
    pendingIntent4 = PendingIntent.getService(getApplicationContext(),
            REQUEST_CODE_STOP, intent4, PendingIntent.FLAG_UPDATE_CURRENT);
    pendingIntent5 = PendingIntent.getService(getApplicationContext(),
            REQUEST_CODE_STOP, intent5, PendingIntent.FLAG_UPDATE_CURRENT);


    mRemoteViews1.setTextViewText(R.id.playertitle,
            MusicList.CurrentNotificationEntity.scrape_title);

    mRemoteViews1
                .setTextViewText(R.id.playerapaer, Base
                        .getNewsPaperName(Base.sharedPref.getString(
                                MusicList.CurrentNotificationEntity.newspaperID,
                                "Palpal")));
    mRemoteViews1.setOnClickPendingIntent(R.id.forward, pendingIntent2);
    mRemoteViews1.setOnClickPendingIntent(R.id.backword, pendingIntent3);

    mRemoteViews1.setOnClickPendingIntent(R.id.playertitle, contentIntent);
    mRemoteViews1.setOnClickPendingIntent(R.id.playerapaer, contentIntent);
    mRemoteViews1.setOnClickPendingIntent(R.id.playerimage, contentIntent);

    mRemoteViews1.setOnClickPendingIntent(R.id.playpush, pendingIntent);
    mRemoteViews1.setOnClickPendingIntent(R.id.close, pendingIntent1);

    Notification  mNotification1 = new NotificationCompat.Builder(
                getApplicationContext())
                .setSmallIcon(R.drawable.ic_launcher)
                .setWhen(System.currentTimeMillis())
                .setPriority(Notification.PRIORITY_HIGH)
                .setDeleteIntent(pendingIntent1)
                .setAutoCancel(true)
                .setContent(mRemoteViews1).setOngoing(false).build();

    mNotificationManager.notify(Base.currentNotificationNo, mNotification1);

Bitte hilf mir, danke im Voraus

Antworten auf die Frage(4)

Ihre Antwort auf die Frage