您必须自己考虑新方法,例如通过使用,
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
// Use methods introduced in API 11. (i.e. Notification.Builder)
} else {
// Use old methods to ensure backwards compatibility.
}
放置这些检查的好地方是实用程序类(即CompatUtils.java
)。例如,您可以创建一个静态方法,该方法接受一个Context
参数并返回一个新的Notification
:
public static buildNotification(Context ctx) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
// Create and return the Notification using Notification.Builder
} else {
// Create and return the Notification using pre-HoneyComb methods
}
}
然后只需CompatUtils.buildNotification(this)
在您的内部调用Activity
以创建新的Notification
. 抽象出这些细节可以让你保持Activity
简洁,并且如果你以后需要的话很容易改变。
当然,最好只使用旧方法来创建您的Notification
.,因为无论如何您都需要实现它们,而Notification.Builder
. 尽管如此,这绝对是您应该牢记的,以防您以后遇到类似问题!
编辑:
Notification.Builder
Android支持包中也提供了,所以在这种情况下你应该只使用它......但是,对于兼容性包中没有提供的方法,你应该使用上面描述的设计模式。