如何處理已棄用的 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 等類。