1

行,

可能是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 标志,起初我认为这是因为我没有振动权限,但我现在添加了它,但它仍然导致通知正在进行。

呃!!!!

其他人可以重新创建这个吗?看起来如此明显的用例是一个错误或怪癖。

我实际上在尝试在上面创建非持续通知的同时使用持续通知,但这真的不应该导致这种情况,因为我正在使用除 NotificationManager 之外的所有内容的新实例。上述代码中的 ID 也与正在进行的通知不同。

任何想法都非常感谢!:)

安迪。

4

1 回答 1

4

尽管没有正在进行的标志,但它会创建一个持续的通知!

flags字段获取FLAG_常量。该defaults字段获取DEFAULT_常量。您正在将DEFAULT_常量放入该flags字段中。尝试更改您的代码以使用该defaults字段。

于 2010-12-30T13:00:57.860 回答