非Activity类中如何获取Context

135

在 Android 应用程序中,如果已知活动类名称,非活动类是否有任何方法可以获取上下文?


1
将您当前活动的上下文传递给Java类构造函数... - user1969053
1
如果你的非活动类是一个Fragment,请参考https://dev59.com/r2sy5IYBdhLWcg3w8Shc。 - dinosaur
4
如果您想避免上下文传递,则可以创建一个扩展Application类的类,在其中定义- private static Context appContext;,并在onCreate(){this.appContext = getApplicationContext();}中进行定义,并创建public static Context getContext(){return appContext;}方法以返回应用程序上下文,并在Activity类中使用。 - B.shruti
1个回答

190
如果你的类是非活动类,并且从活动中创建它的实例,你可以通过以下方式通过后者的构造函数传递一个 context 的实例:
class YourNonActivityClass{

// variable to hold context
private Context context;

//save the context recievied via constructor in a local variable

public YourNonActivityClass(Context context){
    this.context=context;
}

}

您可以按照以下步骤从Activity中创建此类的实例:

new YourNonActivityClass(this);

13
如果我有一个类的静态实例,那么我会在静态上下文中遇到问题。我该怎么办? - Jonathan Aste
5
@MehvishAli,你能给一个详细的解释吗? - navylover
1
给出“此字段泄漏上下文对象”警告。 - zdanman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接