たとえば、次を使用して、新しいメソッドを自分で説明する必要があります。
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引数を取り、 new を返す静的メソッドを作成でき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サポートパッケージで提供されているので、この場合はそれをそのまま使用すればよいのですが、互換パッケージで提供されていないメソッドについては、上記のデザインパターンを使用する必要があります。