你好我很困惑可以解释一下这些获取背景和活动的方法之间的区别:
public static final void onResume(Context context, MBase mem) {
function.start(id, context);
}
public static final void onResume(Context context, MBase mem) {
function.start(id, (Activity) context);
}
public static final void onResume(Activity activity, MBase mem) {
function.start(id, activity);
}
答案 0 :(得分:1)
据我所知:Context是基础对象。因此,与Activity相同的每个Application都来自Context。这意味着每个Activity和每个Application都是一个Context;
因此,对于广义调用,您可以使用上下文和来自Activity的调用。特别是您可以仅使用Activity。
答案 1 :(得分:1)
活动从Context扩展。
java.lang.Object↳android.content.Context ↳android.content.ContextWrapper ↳android.view.ContextThemeWrapper ↳android.app.Activity
(Activity)上下文是类型转换。 Context是基类。它就像汽车(Activity)是一种车辆(Context),但车辆绝对不是汽车。
答案 2 :(得分:0)
Context是一个超级的Activity - 以及其他服务和应用程序。这意味着如果您为其提供非活动上下文,则转换上下文(第二个示例)可能不安全。
你应该真正研究一种面向对象的方法 - 使用静态方法通常不是一个很好的设计。相反,在您的活动中,您可以使用以下方法而不是静态onResume():
public void startFunction(Function function, MBase mem) {
function.start(id, this);
}