Sto tentando di aggiungere un elemento di azione di notifica nella mia app che è un lettore musicale. Quando viene avviato uno stream, deve essere attivata una notifica e nella notifica deve essere visualizzato un pulsante di arresto per lo streaming. La notifica funziona bene finora, ho problemi con l'elemento di azione di arresto. Ecco come viene dichiarato nel servizio di avviare il flusso:.Notifica Android Azione non attivata (PendingIntent)
Intent stopIntent = new Intent(this, MusicPlayerNew.class);
stopIntent.putExtra("STOP", "STOP");
PendingIntent stopPendingIntent = PendingIntent.getActivity(this, 0,
stopIntent, PendingIntent.FLAG_UPDATE_CURRENT, null);
mBuilder.addAction(R.drawable.ic_stat_stop, "Stop", stopPendingIntent);
Ora, nel onResume() - Metodo della mia attività verifico con getIntent() getStringExtra() per la "STOP" in più, ma la intento ho recuperato tramite getIntent() non ha nessun extra impostati :(
ho anche cercato di controllo per inviare una trasmissione (ho un ricevitore di broadcast di lavoro di comunicare da servizio per l'attività)
Intent stopIntent2 = new Intent(MusicPlayerNew.STOP_MEDIAPLAYER);
PendingIntent stopPendingIntent2 = PendingIntent.getBroadcast(this, 0,
stopIntent2, PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.addAction(R.drawable.ic_stat_stop, "Stop", stopPendingIntent2);
Ora questo funziona se l'attività è attualmente in primo piano Se l'attività è i n fondo il pulsante di arresto non fa nulla :(
EDIT: Ho il BroadcastReceiver nella mia attività di classe privata
private class DataUpdateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
..
}}
Nel onResume() registrare il mio app per questo ricevitore:
intentFilter = new IntentFilter(STOP_MEDIAPLAYER);
registerReceiver(dataUpdateReceiver, intentFilter);
onPause()
unregisterReceiver(dataUpdateReceiver);
Ora se rimuovo l'annullamento della registrazione dal metodo onPause() - la trasmissione viene ricevuta anche se l'app/attività non è più in primo piano. Ma è questo il modo giusto per farlo? Ho ottenuto questo registro/unregister-stuff da un tutorial sul Web.
Ho lo stesso problema su KitKat. Ho due azioni, prima chiamata bella, seconda non chiamata affatto. Hai trovato il modo di risolvere questo problema? – Nik
Ok, ho trovato una soluzione. Guarda la mia risposta in basso. – Nik