1

私はヘルパー クラスを使用していますが、Acitvity オブジェクトを使用する場合と Context オブジェクトを使用する場合の実際の違いは何なのか疑問に思っていました。

クラスがあり、そのクラスで次のようなヘルパー オブジェクトを作成するとします。

Helper h = new Helper(this);

これで、ヘルパー クラスを次のように設定できます。

public class Helper {
    private Activity a;

    public Helper(Activity a) {
        this.a = a;
    }
}

または私はこれを行うことができます:

public class Helper {
    private Context c;

    public Helper(Context c) {
        this.c = c;
    }
}

いつどのアプローチを使用する必要がありますか? 長所と短所は何ですか?

4

1 に答える 1

1

使用:

public Helper(Activity a) {
        this.a = a;
    }

以下を使用するよりも具体的です。

public Helper(Context c) {
        this.c = c;
    }

つまり、(たとえば)呼び出した場合、「戻り値の型が異なる」2 つのコンストラクターがある場合、最初にHelper(MainActivity); 参照されます。Helper(Activity a). に似ています: Class(Object o)Class(String s) 呼び出すと、 notClass(null)による応答が発生します。Class(String s)Class(Object o)

Contextはベース オブジェクトであるため、すべてのActivityContextを拡張します。

java.lang.Object
  ↳ android.content.Context
      ↳ android.content.ContextWrapper
          ↳ android.view.ContextThemeWrapper
              ↳ android.app.Activity

ドキュメンテーション

これが役立つことを願っています。

于 2015-06-16T10:19:42.270 に答える