Android中数据库的内存安全加载

时间:2012-09-13 13:46:32

标签: android database android-asynctask loading

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

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

如何使用Loaders进行此加载?

谢谢! 乔恩

2 个答案:

答案 0 :(得分:0)

乔,

我实际上不确定你的意思Asynctask需要一个活动的实例?我一直使用AsyncTasks而没有传递对活动的引用。那是你需要做的吗?您是否可以使用应用程序上下文来避免活动泄漏?

答案 1 :(得分:0)

您可以发布代码以使其更清晰。有很多方法可以解决您的问题。在UI线程上调用OnProgressUpdate,因此您只需通过处理程序或甚至意图向活动发送消息,以确保AsyncTask仅处理应用程序上下文而非活动上下文。再次,请发布一些代码。