我需要在我的utils类中引用Context。
首先,我正在扩展Application类并初始化我的util类:
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Utils.init(getApplicationContext());
}
}
和utils类看起来像:
public class Utils{
private static Context sContext;
private Utils() {
}
public static void init(Context context) {
sContext = context;
}
}
是否有任何以这种方法泄漏的可能方法?
我只能看到一种情况:当应用程序进入后台时 - 可以重新创建上下文,因此即使它将在内存中持续存在,也可以重新初始化Utils类。
请提出任何建议。
答案 0 :(得分:1)
你应该按照以下方式解决:
public class YourClass extends Application {
private static Context context;
public void onCreate()
{
super.onCreate();
YourClass.context = getApplicationContext();
}
public static Context getAppContext() {
return YourClass.context;
}
}
使用方法:
YourClass.getAppContext();