2012-10-26 3 views
5

Desidero una notifica che rimanga sulla barra di notifica finché la musica non smette di riprodurla. al momento ho scritto del codice in cui posso mostrare la notifica, ma quando preme il pulsante di notifica chiara o lo scambio di esso scompare dal centro di notifica. Voglio una notifica come spotify che rimanga sulla barra finché non interrompi la riproduzione della musica. Ecco il mio codice per la notificacosa codificare affinché la notifica resti attiva fino a quando la musica non smette di suonare

int pendingRequestCode = 0; 
// final Resources res = getResources(); 
    notificationManager = (NotificationManager) getSystemService(
      NOTIFICATION_SERVICE); 
    Intent i = new Intent(getApplicationContext(),Mainactivity.class); 
    Notification.Builder builder = new Notification.Builder(this) 
.setSmallIcon(R.drawable.ic_action_search) 
.setAutoCancel(true) 
.setTicker("test ckick")  
.setContentIntent(PendingIntent.getActivity(getApplicationContext(), NOTIFICATION_DEFAULT, i,0)); 


     // Sets a custom content view for the notification, including an image button. 
     layout = new RemoteViews(getPackageName(), R.layout.notification); 
     layout.setTextViewText(R.id.notification_title, getString(R.string.app_name)); 
     Intent clickIntent = new Intent(); 
     clickIntent.setAction(ACTION_DIALOG); 
     PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), pendingRequestCode, clickIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
     layout.setOnClickPendingIntent(R.id.notification_button,pendingIntent); 
     builder.setContent(layout); 

     // Notifications in Android 3.0 now have a standard mechanism for displaying large 
     // bitmaps such as contact avatars. Here, we load an example image and resize it to the 
     // appropriate size for large bitmaps in notifications. 

     layout.setImageViewResource(R.id.notification_button, R.drawable.pause); 
    notificationManager.notify(NOTIFICATION_DEFAULT, builder.getNotification()); 

in attesa di risposta enter image description here

risposta

15

Usa setOngoing(true) per indicare che l'evento è in corso. È anche possibile rimuovere setAutoCancel(true), in quanto cancella lo Notification quando l'utente lo tocca.

+0

grazie .. ho un altro problema è che quando il mio lettore multimediale sta riproducendo musica e se si avvia un altro lettore come app spotify o playmusic rispetto alla mia app dovrebbe smettere di riprodurre musica..so come potrebbe ottenere questo. ..un'altra guida –

+0

@SwapAndroid: guarda le API dell'audio focus su 'AudioManager'. – CommonsWare

+0

@CommonsWare mi dà un suggerimento. Costruisco una notifica vista grande usando RemoteView per controllare play/pause come questo link (stackoverflow.com/questions/14508369/...) Tutti sono nel giusto, ma quando clicco il pulsante indietro del dispositivo e fuori dall'evento click dell'applicazione (Riproduci/Pausa/Inoltra/Chiudi) non funziona. Aiutatemi. –

0

notification.flags = Notification.DEFAULT_LIGHTS | Notification.FLAG_AUTO_CANCEL

+0

vedere: https://stackoverflow.com/a/8479088/4628115. Modifica consigliata 'notification.flags | =' – KGCybeX