根据我的理解,Android 中的应用程序是一个单例(如果我错了,请纠正我),并且我们始终只有一个应用程序上下文实例。
那么,从这个角度来看,将应用程序上下文保存在我的 Application 类中是一个不好的做法吗?
它会导致大量内存泄漏吗?
这是一个例子:
public class MyApp extends Application {
private static Context appContext = null; // <-- here is the thing!
@Override
public void onCreate() {
appContext = this;
}
public static Context getApplicationContextSingleton () {
return MyApp.appContext;
}
}
这样做的原因是全局访问的类,例如 PreferencesManager,大多数具有静态方法,并且始终需要上下文。因此,我考虑存储应用程序上下文,而不是每次都传递它(或者甚至将其存储在实例中,这可能很糟糕)。我没有看到的缺点是什么?
将应用程序上下文保存在我的应用程序类中是一个不好的做法吗?
这是一种代码味道。
它会导致大量内存泄漏吗?
拥有静态数据成员不会导致大量内存泄漏。您是否过度使用Application
对象是否会导致大量内存泄漏取决于您在何处以及如何使用它。
我没有看到的缺点是什么?
Not all Context
s 生而平等。一般来说,只使用Application
当你知道具体为什么你需要Application
context,并不适用于所有情况。
DoubleEncore 的 Dave Smith 有一个很棒的博客文章涵盖类型之间的差异Context
以及何时使用其中一种而不是另一种。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)