我有一个service1向MainActivity广播服务状态,MainActivity在收到广播后发送通知。此通知被标记为不可取消通知。为了在应用程序从任务面板中被杀死时取消通知,我使用Cancel notification on remove application from multitask panel中提供的KillNotificationsService绑定了活动。 解决方案取消通知。 我还需要在service1停止时取消通知。所以我把
@Override
public void onDestroy(Intent intent) {
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.cancel(KillNotificationsService.NOTIFICATION_ID);
}
(NOTIFICATION ID是KillNotificationsService中的静态变量)。
取消此通知后,下次启动service1时,在service1广播状态后,将不会显示具有相同ID的通知(NOTIFICATION_ID)。我尝试为通知分配唯一的ID和gc,但它似乎没有用。
如果有人可以帮助我。
答案 0 :(得分:0)
可能是您正在使用广播接收器的上下文来构建通知
使用应用程序上下文来构建通知。
Context context=getApplicationContext();
NotificationManager mNotificationManager=(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context);
mNotificationManager.notify(KillNotificationsService.NOTIFICATION_ID, mBuilder.build());