Bol*_*oso 10 android design-patterns android-context
根据我的理解,Android中的应用程序是一个单例(如果我错了,请纠正我),我们总是只有一个应用程序上下文实例.
那么,从这个角度来看,在我的Application类中保存应用程序Context是不好的做法吗?它会导致大量内存泄漏吗?
这是一个例子:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
这样做的原因是全局访问的类,如PreferencesManager,大多数静态方法总是需要上下文.因此,我不是每次都传递它(甚至将它存储在一个可能很糟糕的实例中),而是考虑存储应用程序上下文.有什么缺点我没看到?
Com*_*are 11
将应用程序Context保存在Application类中是不好的做法?
这是一种代码味道.
它会导致大量内存泄漏吗?
拥有静态数据成员不会导致大量内存泄漏.过度使用Application对象是否会导致大量内存泄漏取决于您使用它的位置和方式.
有什么缺点我没看到?
并非所有Contexts都是平等的.一般来说,只有Application在你明确Application知道为什么需要上下文时才使用,而不是用于所有事情.
DoubleEncore的戴夫史密斯有一篇很棒的博客文章,内容涉及不同类型Context和何时使用彼此之间的差异.
| 归档时间: |
|
| 查看次数: |
3287 次 |
| 最近记录: |