2016-04-08 2 views
1

Ich versuche eine Benachrichtigung mit dem Swipe zu schließen, aber sie wird einfach nicht geschlossen. Ich habe versucht, die richtigen Flags zu setzen und das OnGoing auf falsch zu setzen, aber ich habe kein Glück.Schließen der Benachrichtigung, wenn der Swipe nicht funktioniert

der Code Dies habe ich:

Notification notification = new Notification.Builder(getBaseContext()) 
        .setSmallIcon(R.drawable.appicon) 
        .setContentTitle("My notification") 
        .setContent(remoteViews) 
        .setAutoCancel(true) 
        .setOngoing(false) 
        .build(); 

      notification.flags = Notification.DEFAULT_LIGHTS | Notification.FLAG_AUTO_CANCEL; 

     // Additional code 

     Intent playpause = new Intent(); 
     playpause.setAction("com.eciflow.project.pause"); 
     PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(), 1, playpause, PendingIntent.FLAG_CANCEL_CURRENT); 

     Intent stop = new Intent(); 
     stop.setAction("com.eciflow.project.stop"); 

     PendingIntent stopI = PendingIntent.getBroadcast(getApplicationContext(), 1, stop, PendingIntent.FLAG_CANCEL_CURRENT); 
     remoteViews.setImageViewResource(R.id.playpause, R.drawable.pauseradio); 
     remoteViews.setImageViewResource(R.id.stop, R.drawable.stopradio); 
     remoteViews.setOnClickPendingIntent(R.id.playpause, pi); 

     remoteViews.setOnClickPendingIntent(R.id.stop, stopI); 
     remoteViews.setTextViewText(R.id.title, "Playing"); 
     remoteViews.setTextViewText(R.id.text, param2); 
     remoteViews.setTextColor(R.id.title, getResources().getColor(android.R.color.holo_blue_dark)); 
     remoteViews.setTextColor(R.id.text, getResources().getColor(android.R.color.holo_blue_dark)); 


     startForeground(250, notification); 

ich Musik von einem Bach im Hintergrund spiele ...

Irgendwelche Ideen, warum dies geschieht? Wenn es andere Alternativen gibt, bin ich offen dafür, die Struktur auch zu ändern.

Danke!

+0

versuchen, "NotificationCompat" anstelle von "Benachrichtigung" zu verwenden. –

Antwort

0

Fügen Sie diesen Code beim Setzen des Flags hinzu:
notification.defaults | = Notification.DEFAULT_SOUND; notification.defaults | = Notification.DEFAULT_VIBRATE; notification.defaults | = Notification.DEFAULT_LIGHTS; notification.flags | = Benachrichtigung.FLAG_AUTO_CANCEL;

+0

wo würde ich das hinzufügen? Wenn ich den obigen Code hinzufüge, hört das Telefon nicht auf zu vibrieren. Ich vermute, das ist nicht der richtige Ort, um es zu sagen. –

+0

Fügen Sie den folgenden Code hinzu: notification.flags = Notification.DEFAULT_LIGHTS | Notification.FLAG_AUTO_CANCEL; – raasesh