如何将上下文存储在 Android 应用程序中?经常需要在常规类中使用它,在 Activity 之外(例如数据库适配器)。
我尝试将 Context 保存在静态字段中,但它会调用内存泄漏。
也许,如果我在常规类中扩展上下文并在里面调用会更好getApplicationContext()
?
如何将上下文存储在 Android 应用程序中?经常需要在常规类中使用它,在 Activity 之外(例如数据库适配器)。
我尝试将 Context 保存在静态字段中,但它会调用内存泄漏。
也许,如果我在常规类中扩展上下文并在里面调用会更好getApplicationContext()
?
这样做的好方法是Context
在构造函数中传递。您可以在每个示例代码中看到 Context 作为参数传递给自定义类以供将来使用。
即在fedorvlasov 的 LazyListAdapter 中(这是从网络延迟加载图像的非常好的做法),您可以看到构造函数如下所示public LazyAdapter(Activity a, String[] data)
:
这样,每次您在 Activity 之外并需要使用它时,您已经将它存储为一个字段。
另一种方法(不推荐)是使用作为应用程序上下文的静态字段。
public static final Context = getApplicationContext();
你把它放在启动活动中,你就可以在应用程序的整个生命周期内访问应用程序上下文。