Próbuję dodać element powiadomienia o powiadomieniu do mojej aplikacji, która jest odtwarzaczem muzyki. Po uruchomieniu strumienia powiadomienie powinno zostać wyzwolone, a przycisk powiadomienia o strumieniu powinien zostać wyświetlony w notyfikacji. Powiadomienie działa poprawnie, mam problem z elementem zatrzymania. Oto jak to jest uznane w służbie uruchomieniem strumienia.Powiadomienie o Androidzie nie jest uruchamiane (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);
Teraz w onResume() - metoda mojej działalności Sprawdzę getIntent() getStringExtra() na „STOP” ekstra, ale intencją I pobrana poprzez getIntent() ma ustawione żadnych dodatków :(
próbowałem też sprawdzić, aby wysłać transmisję (mam odbiornik rozgłaszania roboczą do komunikowania się z usługą do aktywności)
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);
teraz działa to, jeśli aktywność jest obecnie na pierwszym planie n tło przycisk stop robi nic :(
EDIT: mam BroadcastReceiver w mojej działalności jako prywatny klasy
private class DataUpdateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
..
}}
W onResume() Rejestracja Moje aplikację dla tego odbiornika:
intentFilter = new IntentFilter(STOP_MEDIAPLAYER);
registerReceiver(dataUpdateReceiver, intentFilter);
OnPause()
unregisterReceiver(dataUpdateReceiver);
Teraz, jeśli usunę wyrejestrowanie z metody onPause() - transmisja zostanie odebrana, nawet jeśli aplikacja/aktywność nie jest już na pierwszym planie. Ale czy to właściwa droga? Mam ten rejestr/unregister-stuff z samouczka w Internecie, myślę, że ...
Mam ten sam problem na KitKat. Mam dwie akcje, najpierw nazywane grzywną, drugą nie wzywaną. Czy znalazłeś sposób na rozwiązanie tego problemu? – Nik
Ok, znalazłem rozwiązanie. Zobacz moją odpowiedź na dole. – Nik