7

APIレベル15を対象としたAndroidアプリケーションを作成していますが、古いAPIレベル(min-sdk 7)との下位互換性も維持したいと考えています。

これに到達するには、現在のAPIレベルに応じて使用するコードを決定する条件を設定します(以下を参照)。これは良いアプローチだと思いdisplay.getWidth()ます。APIレベル8と15の間にはかなり多くの変更があるため、廃止されたメソッド(など)をたくさん使用@SuppressWarning("deprecation")しても問題ないかどうかを尋ねたいと思います。この場合?

たとえば、APIレベル<=8および>= 9の場合、複数のAPKを使用する方がよいのではないでしょうか。( developer.android.comでは推奨されていませんが。

    Display display = ((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
    Point screenSize = new Point();

    // calculate the width
    float width;
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
      display.getSize(screenSize);
      width = screenSize.x;
    } else {
      width = display.getWidth();
    }

ありがとう!

4

1 に答える 1

9

あなたは自分自身にいくつかの質問をしなければなりません:

  • このコードを実行するAPIレベルでは非推奨でしたか?
  • もしそうなら、代替案が提案または利用可能ですか?

あなたの場合、getWidth()は、APIレベル13を必要とするを使用するために非推奨になりましたgetSize(Point)。したがって、APIレベル13より前はgetWidth()、その時点では非推奨ではなかったがすべてです。これらの非推奨のメソッドが維持される理由は、主に下位互換性を念頭に置いているためです(それに依存するすべてのアプリを壊さないようにするとともに)。

だからあなたの質問に答えるために、はい、これはこの場合は問題ありません、そしてはい、それはの良い使い方です@SuppressWarning("deprecation")

于 2012-04-15T19:02:45.163 に答える