确定,
可能是android的另一个奇怪的未记载的怪癖,但是在我的通知中添加标记时,我发现了一些很奇怪的东西......
如果我这样做:
Notification notification = new Notification(R.drawable.status_icon, "[Ticker Text]",System.currentTimeMillis());
PendingIntent intent = PendingIntent.getActivity(this, 0, new Intent(this, CarparkScreen.class), 0);
notification.setLatestEventInfo(AlertService.this,"[Title]", "[Detail]", intent);
mNM.notify(NOTIFICATION_BREACH, notification);
然后通知显示为一次,点击取消即可,您可以正常方式清除它。
但是,如果我添加这些标志
Notification notification = new Notification(R.drawable.status_icon, "[Ticker Text]",System.currentTimeMillis());
PendingIntent intent = PendingIntent.getActivity(this, 0, new Intent(this, CarparkScreen.class), 0);
notification.setLatestEventInfo(AlertService.this,"[Title]", "[Detail]", intent);
notification.flags = Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE | Notification.DEFAULT_LIGHTS;
mNM.notify(NOTIFICATION_BREACH, notification);
尽管没有正在进行的标志,但仍会创建正在进行的通知!
我认为它实际上是导致这种情况的DEFAULT_VIRBATE标志,起初我认为这是因为我没有振动权限,但我现在已经添加了但仍然会导致通知正在进行中。
Urgh !!!!
其他人可以重新创建吗?似乎这样一个明显的用例是一个bug或怪癖。
我实际上正在尝试在上面创建一个非持续通知的同时使用正在进行的通知,但这实际上不应该导致这一点,因为我正在使用除NotificationManager之外的所有内容的新实例。上述代码中的ID也与正在进行的通知不同。
任何想法都非常感谢! :)
安迪。
答案 0 :(得分:4)
尽管没有正在进行的旗帜,但它会立即发出通知!
flags
字段获取FLAG_
个常量。 defaults
字段获取DEFAULT_
个常量。您将DEFAULT_
常量放在flags
字段中。尝试更改代码以使用defaults
字段。