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;
    }

这意味着(例如)如果您调用Helper(MainActivity); 它将Helper(Activity a)首先引用,如果您有两个构造函数“具有不同的返回类型!” . 类似于: Class(Object o)并且Class(String s) 调用将通过notClass(null)引起响应Class(String s)Class(Object o)

Context是基础对象,因此每个Activity都扩展Context

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

文档

希望这会有所帮助。

于 2015-06-16T10:19:42.270 回答