1

我想在可用时接收 onTrimMemory (ICS+) 和 onLowMemory (> ICS) 的通知。我的问题如下:

  1. 只要我不实例化,系统是否允许我定义一个实现当前 SDK 中没有的接口的类?例如,CallbacksICS implements ComponentCallbacks2在以 minSdk 8 为目标时进行定义,但在选择要实例化和注册的内容之前检查当前的 SDK_INT。
  2. 当应用程序准备好被系统清理时,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);
    }
}
4

0 回答 0