利用可能な場合は onTrimMemory (ICS+)、利用できない場合は onLowMemory (> ICS) の通知を受け取りたいです。私の質問は次のとおりです。
- システムでは、インスタンス化しない限り、現在の SDK にないインターフェイスを実装するクラスを定義できますか? たとえば、
CallbacksICS implements ComponentCallbacks2
minSdk 8 をターゲットにして定義しますが、インスタンス化して登録するものを選択する前に現在の SDK_INT を確認します。 - アプリケーションがシステムによってクリーンアップされる準備ができている場合、onTerminate は常に呼び出されますか? アプリケーションのライフ サイクル メソッドの一部が呼び出されることが保証されていないということを、初期の頃に聞いたことをぼんやりと覚えています。
私のアプリケーションクラスから:
@SuppressLint("NewApi")
@Override
public void onCreate() {
super.onCreate();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
callbacksICS = new CallbacksICS();
registerComponentCallbacks(callbacksICS);
}
else {
callbacksLegacy = new CallbacksLegacy();
registerComponentCallbacks(callbacksLegacy);
}
}
@SuppressLint("NewApi")
@Override
public void onTerminate() {
super.onTerminate();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
unregisterComponentCallbacks(callbacksICS);
}
else {
unregisterComponentCallbacks(callbacksLegacy);
}
}