サーチ…


廃止予定のAPIを処理する方法

開発者が開発プロセス中に廃止予定のAPIに遭遇する可能性は低いです。非難されたプログラム要素は、プログラマが危険であるか、より良い代替策が存在するために、一般的にプログラマが使用することをお勧めします。コンパイラーとアナライザー( LINTのような)は、廃止予定のプログラム要素が使用されるか、推奨されないコードで上書きされると警告します。

非難されたAPIは、通常、Android Studioで、打ち切りを使って特定されます。次の例では、メソッド.getColor(int id)は推奨されていません。

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

可能であれば、開発者は代替APIと要素を使用することをお勧めします。ライブラリの下位互換性を確認するには、ライブラリのAndroidドキュメントにアクセスし、「APIレベルxの追加」のセクションをチェックします。

APIレベル1でgetColorが追加され、APIレベル23で廃止されました

使用する必要がある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());
}

この方法を使用すると、アプリは新しいAndroidバージョンと既存のバージョンとの互換性を維持します。

簡単な代替手段:サポートライブラリを使用する

サポートライブラリが使用される場合、しばしば、より少ないクライアントコードで同じタスクを達成するための静的ヘルパーメソッドがあります。上記のif / elseブロックの代わりに、以下を使用してください:

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

シグネチャが異なる新しいメソッドと古いバージョンでは使用できなかった可能性がある多くの新機能を持つ廃止予定メソッドは、このような互換ヘルパーメソッドを持っています。他のものを見つけるには、 ContextCompatViewCompatなどのクラスのサポートライブラリを参照してViewCompat



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow