如何在Android应用中存储Context? 通常需要在常规类中使用它,在Activity之外(例如数据库适配器)。
我尝试在静态字段中保存Context,但它可以调用内存泄漏。
或许,如果我在传统类中扩展Context并在内部调用getApplicationContext()
会更好吗?
答案 0 :(得分:2)
执行此操作的好方法是在构造函数中传递Context
。您可以在每个示例代码中看到Context被传递到自定义类中作为未来使用的参数。
即。在fedorvlasov's LazyListAdapter中(这是从网络延迟加载图像的非常好的做法),你可以看到构造函数看起来像这样:public LazyAdapter(Activity a, String[] data)
。
这样,每当你在Activity之外并且需要使用它时,你已经将它存储为一个字段。
执行此操作的另一种方法(不建议这样做)是使用作为应用程序上下文的静态字段。
public static final Context = getApplicationContext();
你把它放在启动活动中,并且在那里,你可以在应用程序的整个生命周期内访问应用程序。