保护方法调用对于android来说很容易,只要把Build.VERSION.SDK_INT >= xx就可以了,同时我们可以添加“@SuppressLint(“NewApi”)”来防止lint检查这个。
但是内部类扩展一个类或者为高 API 级别实现一个接口(interface)呢?例如 AutoFocusMoveCallback 仅适用于 API 16 及更高版本
private class OnAutoFocusMoveCallback implements AutoFocusMoveCallback {
@Override
public void onAutoFocusMoving(boolean start, Camera camera) {
// TODO
}
}
如何解决这个问题?
最佳答案
解决了这个问题。
在high API中声明这样一个与类/接口(interface)相关的内部类是可以的。
只需确保使用 Build.VERSION.SDK_INT >= xx 保护实例化/使用此类类,如下所示:
if (Build.VERSION.SDK_INT >= 16) {
mAutoFocusMoveCallback = new OnAutoFocusMoveCallback();
}
关于Android:如何保护内部类免受低 API 级别的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27288179/