问题描述
- 在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;
当我取消了服务,想清除通知状态时,应用程序就崩溃了。
请求大家的帮助,谢谢!
解决方案
正如 cytown 所说。notification可能为空,才会导致 NullPointerException。
我认为你应该使用一个NotificationManager对象来取消一个notification。使用相同的ID,你的例子中是0,传递到NoticationManager.cancel(Int)中:
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.cancel(0);
解决方案二:
应该是notification没赋值吧,导致NPE。尽量不要用这种容易引起歧义的命名方式。
时间: 2024-12-21 02:32:13