Android:如何保护内部类免受低 API 级别的影响

标签 android compatibility

保护方法调用对于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/

相关文章:

java - 尝试绘制自定义 View 如何检测单击了哪个切片

android - 侧导航栏未显示在移动设备中?

HTML5 --> 从哪里开始?! (与旧版本的兼容性)

.Net Assembly/dll 共享和部署

html - 在不同浏览器上检查网页外观的方法

windows-phone-7 - Windows 8 上的 Windows Phone 开发

python - gevent 与其他包的兼容性

android - 使用 libgdx 获取 GPS 位置

android - 如何在第二个 activity2 的 ListView 末尾添加两个按钮?

java - import android.support 无法解决