2012-04-01 15 views
1

Ich benutze Benachrichtigungen in meiner Android-Anwendung. Immer, wenn ich eine Benachrichtigung erhalte, versuche ich die Anzahl der ungelesenen Benachrichtigungen mit notification.number wie im folgenden Code zu erhöhen.inkrementieren notification.number in android

NotificationManager notificationManager = (NotificationManager) 
getSystemService(NOTIFICATION_SERVICE); 
Notification notification = new Notification(R.drawable.icon, 
"A new notification", System.currentTimeMillis()); 
notification.flags |= Notification.FLAG_AUTO_CANCEL; 
notification.number += 1; 
Intent intent = new Intent(this, NotificationReceiver.class); 

PendingIntent activity = PendingIntent.getActivity(this, 0, intent, 0); 
notification.setLatestEventInfo(this, "This is the title", 
"This is the text", activity); 
notificationManager.notify(0, notification); 

Aber egal wie viele Benachrichtigungen ich erhalte, der Zähler wird nicht erhöht. Es zeigt immer nur 1 an. Ich verstehe nicht, was hier falsch ist. Könnte mir jemand helfen ...?

Antwort

1

Das Problem besteht darin, dass Sie ein neues Benachrichtigungsobjekt erstellen. nur einmal erstellen, überprüfen, ob es in Feld existiert

public class main extends Activity { 

Notification notification=null; 


//.... 
if (this.notification == null) 
    this.notification = new Notification(R.drawable.icon, 
     "A new notification", System.currentTimeMillis()); 

this.notification.flags |= Notification.FLAG_AUTO_CANCEL; 
this.notification.number += 1; 
+0

Okay, in Ihrem Code, wo soll ich die Benachrichtigungsvariable deklarieren? – Kishan

+0

in Ihrer Hauptklasse (Aktivität) – Superbiji

+0

In meiner Anwendung habe ich den Code für Benachrichtigungen in Broadcast Receiver-Klasse verwendet, die Benachrichtigung Broadcasts empfängt. Wie Sie gesagt haben, habe ich versucht, Benachrichtigungsvariable ein Klassenmitglied zu machen (es ist jetzt ein lokales Mitglied einer Funktion). Aber es hat immer noch nicht funktioniert. – Kishan