wake-up-neo.com

So erstellen Sie mehrere Statusleiste-Benachrichtigungen in Android

Ich muss mehrere Statusbar-Benachrichtigungen erstellen. Wenn ich die Statusleiste herunterziehe, sollten mehrere Benachrichtigungssymbole als Liste angezeigt werden. Jedes Benachrichtigungssymbol sollte separate Daten enthalten, die auf der nächsten Seite angezeigt werden sollen. Wie kann ich das tun?

Mein Code:

public class SimpleNotification extends Activity {

private NotificationManager mNotificationManager;
private int SIMPLE_NOTFICATION_ID;

String str="Hai";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mNotificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
    final Notification notifyDetails = new Notification(R.drawable.Android,"New Alert, Click Me!",System.currentTimeMillis());


    Button start = (Button)findViewById(R.id.notifyButton);
    Button cancel = (Button)findViewById(R.id.cancelButton);



        start.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {


            Context context = getApplicationContext();
            CharSequence contentTitle = "Notification Details...";
            CharSequence contentText = "Browse Android Official Site by clicking me";
            Intent notifyIntent = new Intent(SimpleNotification.this,
                    sub.class);

            Bundle bundle = new Bundle();
            bundle.putString("welcome",str);
            notifyIntent.putExtras(bundle);

            PendingIntent intent = 
                PendingIntent.getActivity(SimpleNotification.this, 0, 
                notifyIntent, Android.content.Intent.FLAG_ACTIVITY_NEW_TASK);

            notifyDetails.setLatestEventInfo(context, contentTitle, contentText, intent);
            mNotificationManager.notify(SIMPLE_NOTFICATION_ID, notifyDetails);
        }
    });

Hier habe ich eine Benachrichtigung gemacht, aber ich muss mehrere Benachrichtigungen erstellen, dass jede Benachrichtigung alle Daten anzeigen soll.

19
sanjay

Sie müssen jeder Benachrichtigung eine eindeutige ID übergeben. Nachdem Sie auf die Benachrichtigung geklickt haben, verwenden Sie diese ID, um sie zu entfernen.

public class SimpleNotification extends Activity {

    private NotificationManager mNotificationManager;
    private int SIMPLE_NOTFICATION_ID_A = 0;
    private int SIMPLE_NOTFICATION_ID_B = 1;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

        Button start = (Button) findViewById(R.id.start_button);        

        start.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                // display A
                displayNotification("Extra for A", "This is A", "Some text for activity A", MyActivityA.class, SIMPLE_NOTFICATION_ID_A);
                // display B
                displayNotification("Extra for B", "This is B", "Some text for activity B", MyActivityB.class, SIMPLE_NOTFICATION_ID_B);
            }
        });
    }

    private void displayNotification(String extra, String contentTitle, String contentText, Class<?> cls, int id) {     
        Notification notifyDetails = new Notification(R.drawable.icon, "New Alert!", System.currentTimeMillis());
        Intent intent = new Intent(this, cls);
        intent.putExtra("extra", extra);
        PendingIntent contentIntent = PendingIntent.getActivity(getApplicationContext(), id, intent, PendingIntent.FLAG_ONE_SHOT);
        notifyDetails.setLatestEventInfo(getApplicationContext(), contentTitle, contentText, contentIntent);
        mNotificationManager.notify(id, notifyDetails);
    }
}

MyActivityA - in onCreate ()

...
mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
mNotificationManager.cancel(SIMPLE_NOTFICATION_ID_A);
...
29
rochdev

Verwenden Sie einfach verschiedene IDs für mNotificationManager.notify(ID, notifyDetails);

Wenn Sie die ID erneut verwenden, wird keine neue hinzugefügt, sondern die alte wird aktualisiert.

Hier finden Sie eine Anleitung zur Verwendung von Benachrichtigungen .

7
H9kDroid

sie müssen die Benachrichtigungs-ID ändern, da es die ganze Zeit nicht die Lösung ist, dass Sie random number concept verwenden

Random random = new Random();
int randomNumber = random.nextInt(9999 - 1000) + 1000;
notificationManager.notify(randomNumber, notification);
2
RaviPatidar

Dieses Beispiel zeigt, wie Sie mehrere Benachrichtigungen erstellen 

1
Sanath

Wenn Sie für jede Benachrichtigung unterschiedliche Daten anzeigen möchten. Verwenden Sie das Flag FLAG_UPDATE_CURRENT in Ihrer anstehenden Intent.

PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

Es aktualisiert die Daten bei jeder Benachrichtigung, ohne sie jedes Mal neu erstellen zu müssen.

0
g4gaj