java - 如何存储上下文?

标签 java android android-context

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

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

也许,如果我在常规类中扩展 Context 并在内部调用 getApplicationContext() 会更好?

最佳答案

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

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

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

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

public static final Context = getApplicationContext();

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

关于java - 如何存储上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11380880/

相关文章:

java - 是否可以通过编程方式滚动任何屏幕?

java - .contains() 的运行时间是多少

java - Apache 弗林克 : Windowed ReduceFunction is never executed

java - 在 eclipse java android 中找不到启动器 Activity

android - 如何在 View 类中获取 Activity 引用?

java - 如何预安装 Eclipse m2e 配置器(生命周期配置未涵盖的插件执行)

android - 如何在 android 中写入和读取 ArrayList<String> 以进行包裹

java - 如何提取 Java Android 源代码并集成到另一个项目中

android - Kotlin中view.setOnLongClickListener和view.onClick的比较

java - Android:尝试从其他类访问 TextView 时出现 NullPointerException