安卓系统中数据库的内存安全加载



所以我读了一大堆书,我意识到android的旧AsyncTask要求我们将其链接到活动的实例;然而,在方向更改时,这会破坏此特定活动,并重新创建它,从而导致内存泄漏。第一个AsyncTask指的是活动的第一个实现,而它是正在显示的第二个实现。3.0及更高版本的Loader类处理了大部分问题,但我对初始化应用程序时如何加载数据库感到困惑。

目前我正在使用AsyncTask,但我意识到,如果有人在加载过程中改变了方向,我们就会出现内存泄漏。如何使用Loader执行此操作?我正在更新一个显示(以防止超时并让用户知道发生了什么),完成后,我关闭警报。

我将如何使用Loaders进行此装载?

谢谢!Jon

Jon,

实际上,我不确定您所说的Asynctask需要活动的实例是什么意思?我一直在使用AsyncTasks,从未传递过对活动的引用。这是你需要做的事情吗?您可以使用应用程序上下文来避免活动泄漏吗?

你能发布你的代码让它更清晰吗。有很多方法可以解决你的问题。在UI线程上调用OnProgressUpdate,因此您可以简单地通过处理程序甚至意图向活动发送消息,以确保AsyncTask只处理应用程序上下文而不是活动上下文。再次,请张贴一些代码。

最新更新