4

如何将上下文存储在 Android 应用程序中?经常需要在常规类中使用它,在 Activity 之外(例如数据库适配器)。

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

也许,如果我在常规类中扩展上下文并在里面调用会更好getApplicationContext()

4

1 回答 1

2

这样做的好方法是Context在构造函数中传递。您可以在每个示例代码中看到 Context 作为参数传递给自定义类以供将来使用。

即在fedorvlasov 的 LazyListAdapter 中(这是从网络延迟加载图像的非常好的做法),您可以看到构造函数如下所示public LazyAdapter(Activity a, String[] data)

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

另一种方法(不推荐)是使用作为应用程序上下文的静态字段。

public static final Context = getApplicationContext();

你把它放在启动活动中,你就可以在应用程序的整个生命周期内访问应用程序上下文。

于 2012-07-08T05:35:37.837 回答