如何处理已弃用的 API

开发人员不太可能在开发过程中遇到弃用的 API。不推荐使用的程序元素是程序员不鼓励使用的元素,通常是因为它是危险的,或者因为存在更好的替代方案。编译器和分析器(如 LINT )在未弃用的代码中使用或覆盖已弃用的程序元素时发出警告。

通常在 Android Studio 中使用删除线标识已弃用的 API。在下面的示例中,不推荐使用方法 .getColor(int id)

getResources().getColor(R.color.colorAccent));

如果可能,鼓励开发人员使用替代 API 和元素。可以通过访问库的 Android 文档并检查“在 API 级别 x 中添加”部分来检查库的向后兼容性:

StackOverflow 文档

如果你需要使用的 API 与你的用户使用的 Android 版本不兼容,则应在使用该库之前检查用户的 API 级别。例如:

//Checks the API level of the running device
if (Build.VERSION.SDK_INT < 23) {
    //use for backwards compatibility with API levels below 23
    int color = getResources().getColor(R.color.colorPrimary);
} else {
    int color = getResources().getColor(R.color.colorPrimary, getActivity().getTheme());
}

使用此方法可确保你的应用与新版本以及现有版本保持兼容。

更简单的替代方案:使用支持库

如果使用支持库,通​​常会有静态帮助程序方法来使用较少的客户端代码完成相同的任务。而不是上面的 if / else 块,只需使用:

final int color = android.support.v4.content.ContextCompat
    .getColor(context, R.color.colorPrimary);

大多数已弃用的方法具有不同签名的新方法和许多可能无法在旧版本上使用的新功能,这些方法具有兼容性辅助方法。要查找其他人,请浏览支持库,查看 ContextCompatViewCompat 等类。