Tworzę aplikację, która wyświetla bieżącą odtwarzaną piosenkę notification
.Jak anulować powiadomienie o nieoczekiwanym/wymuszonym zamknięciu aplikacji
Piosenka jest odtwarzana przez Service
& inicjowanie & anulowanie powiadomienia odbywa się w samej usłudze.
Ale jeśli aplikacja zostanie zakończona przez jakiś wyjątek lub wymuszam zamknięcie go za pośrednictwem menedżera zadań, powiadomienie pozostaje na górze na pasku zadań.
Jak mogę to usunąć.
Poniżej znajduje się kod:
//In Service onStartCommand(), there is a call to initiatePlayback()
private void initiatePlayback() {
try {
if (mPlayer.isPlaying()) {
mPlayer.stop();
}
mPlayer.reset();
mPlayer.setDataSource(currentData);
mPlayer.prepare();
if (reqAudioFocus()) {
mPlayer.start();
}
if (mPlayer.isPlaying()) {
initNotification();
}
} catch (Exception e) {
Toast.makeText(this,
"PlayTrack->initiatePlayback(): " + e.toString(),
Toast.LENGTH_SHORT).show();
}
}
@Override
public void onDestroy() {
stopPlayback();
mPlayer.release();
mPlayer = null;
super.onDestroy();
}
private void stopPlayback() {
if (mPlayer.isPlaying()) {
mPlayer.stop();
mPlayer.reset();
cancelNotification();
}
}
private void cancelNotification() {
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
mNotificationManager.cancel(NOTIFICATION_ID);
}
sprawdzić to: http://stackoverflow.com/questions/12997800/cancel-notification-on-remove-application-from-multitask-panel –