2016-05-16 10 views
0

Hallo Ich entwickle eine App, in der ich Push-Benachrichtigungen an Benutzer geben möchte, wenn Sms empfängt. Das Problem ist jetzt, dass das Benachrichtigungssymbol noch nicht entfernt, wenn sie geöffnet APP durch Benutzer durch Launcher-Symbol Hier ist mein Code:Benachrichtigungssymbol entfernen, wenn Benutzer App über Launcher öffnet Symbol

NotificationCompat.Builder notify = new NotificationCompat.Builder(context); 
      notify.setSmallIcon(R.drawable.appicon); 
      notify.setContentTitle(title); 
      notify.setContentText(msgBody); 
      notify.setAutoCancel(true); 
      Notification notification = new Notification(); 
      notification.defaults |= Notification.DEFAULT_VIBRATE; 

      //notify.setVibrate(new long[]{1000, 1000, 1000, 1000, 1000}); 
      notify.setLights(Color.GREEN, 2000, 2000); 
      notify.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)); 
      Intent notificationIntent = new Intent(Intent.ACTION_MAIN); 
      notificationIntent.addCategory(Intent.CATEGORY_DEFAULT); 
      notificationIntent.setType("vnd.android-dir/mms-sms"); 
      notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
      PendingIntent intentt = PendingIntent.getActivity(context, 0,notificationIntent, 0); 
      notify.setContentIntent(intentt); 
      NotificationManager notificationManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE); 
      notificationManager.notify(0, notify.build()); 

ich so versucht, zu:

notificationManager.cancel(0); 

und auch versucht, diese :

notificationManager.cancelAll(); 

aber diese beiden funktionieren nicht. Sie erlauben keine Benachrichtigung. Vielleicht löschen sie die Push-Benachrichtigung vor ihrer Erstellung. Bitte Hilfe!

+0

Mögliche Duplikat von [Wie eine Benachrichtigung in Android löschen] (http://stackoverflow.com/questions/2665634/how-to-clear-a-notification-in-android) – SMR

+0

Haben Sie versuchen, Setzen Sie den Stornierungscode in onCreate? – MorZa

+0

@MorZa Nein, Sir, sollte ich auch brauchen? aber wenn ich das schreibe und wenn es keine benachrichtigung gibt und ich meine app öffne dann gibt es vielleicht null ausnahme? Bitte erläutern Sie –

Antwort

6

einfach löschen Sie alle Mitteilungen innerhalb des Haupt onCreate() Aktivitäten Methode

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

    NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); 
    notificationManager.cancelAll(); 
} 

Das ist, weil Sie

Remove Benachrichtigungssymbol, wenn sie geöffnet App über Launcher Icon Benutzer gefragt

Aber Der beste Weg ist, es in onResume() zu setzen, so dass, wenn die App im Hintergrund ist, Sie t zeigen möchten er Benachrichtigung und entfernen Sie es, wenn der Benutzer es in den Vordergrund bringt.

@Override 
protected void onResume() { 
    super.onResume(); 

    NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); 
    notificationManager.cancelAll(); 
} 
+0

Danke, Sir, es funktioniert perfekt! –

Verwandte Themen