2012-01-12 6 views
0

У меня возникли трудности с очисткой строки состояния. Уведомление.Удалить уведомление о состоянии Android

public void NotificationStatus(){ 

    Intent intent = new Intent(this, Stimulation.class); 
    NotificationManager notificationManager 
     = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
    Notification notification = new Notification(
     david.flanagan.android.VenAssist.Activities.R.drawable.notification_icon, 
     "VenAssist Stimulation ON", System.currentTimeMillis()); 
    PendingIntent activity = PendingIntent.getActivity(this, 0, intent, 0); 
    notification.flags |= Notification.FLAG_ONGOING_EVENT; 
    notification.flags |= Notification.DEFAULT_VIBRATE; 
    notification.defaults |= Notification.DEFAULT_SOUND; 
    notification.setLatestEventInfo(this, "VenAssist", 
     "Stimulation Started", activity); 
    notificationManager.notify(0, notification);  
} 

Я тогда пытался очистить состояние уведомления в onDestroy() функции моей службы по телефону

notification.cancel(0); 

Я создал экземпляр уведомления, что не я уверен, является правильным.

private NotificationManager notification; 

Когда я пытаюсь отменить службу, следовательно, очистить строку состояния, приложение выйдет из строя.

+1

Я предлагаю вам вставить stacktrace –

ответ

2

Ваш объект уведомления может иметь значение null, что приведет к возникновению NullPointerException.

Я думаю, вы должны использовать NotificationManager объект, чтобы отменить уведомления, использовать один и тот же идентификатор (в вашем случае, 0) и передать в NoticationManager.cancel(Int):

NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
notificationManager.cancel(0); 

NotificationManager docs

+0

спасибо, работал как шарм –