如何存储Context?

时间:2012-07-08 05:28:10

标签: java android android-context

如何在Android应用中存储Context? 通常需要在常规类中使用它,在Activity之外(例如数据库适配器)。

我尝试在静态字段中保存Context,但它可以调用内存泄漏。

或许,如果我在传统类中扩展Context并在内部调用getApplicationContext()会更好吗?

1 个答案:

答案 0 :(得分:2)

执行此操作的好方法是在构造函数中传递Context。您可以在每个示例代码中看到Context被传递到自定义类中作为未来使用的参数。

即。在fedorvlasov's LazyListAdapter中(这是从网络延迟加载图像的非常好的做法),你可以看到构造函数看起来像这样:public LazyAdapter(Activity a, String[] data)

这样,每当你在Activity之外并且需要使用它时,你已经将它存储为一个字段。

执行此操作的另一种方法(不建议这样做)是使用作为应用程序上下文的静态字段。

public static final Context = getApplicationContext();

你把它放在启动活动中,并且在那里,你可以在应用程序的整个生命周期内访问应用程序。