我想在可用时接收 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);
}
}