5

根据我看到的文档,Android 通知生成器是在 API 11 中引入的,并且:

  • 在 API 11 到 API 15 中,使用方法 .getNotification() 来创建通知对象
  • 从 API 16 开始,使用 .build() 创建通知对象。
这听起来很简单,但是如何在 Eclipse 中编写代码,根据 API 版本调用正确的方法?

4

2 回答 2

15

如果您的应用支持 API 级别 11 之前的设备,您应该使用NotificationCompat.Builder,在这种情况下,您可以一直使用build()

否则,欢迎您致电getNotification(),直到您愿意仅支持 API 级别 16 及更高级别。他们只是简单地重命名了该方法以提高一致性。如果您查看源代码,只需在较新的设备上getNotification()调用。build()

使用 Raghav 的方法没有任何问题,而且在其他存在 API 级别差异的情况下将需要这种技术。

于 2013-04-20T17:46:52.847 回答
5

您可以在运行时检查 API 级别。

if (android.os.Build.VERSION.SDK_INT>=android.os.Build.VERSION_CODES.JELLY_BEAN) {
  // call something for API Level 16+
} else if (android.os.Build.VERSION.SDK_INT>=android.os.Build.VERSION_CODES.HONEYCOMB) {
  // call something for API Level 11+
}
于 2013-04-20T17:14:51.650 回答