我可以在AsyncTask中保留ContentResolver多长时间?

时间:2011-04-15 11:18:23

标签: android android-asynctask screen-rotation

我正在尝试编写一个Activity,它会为长时间运行的操作生成AsyncTask,并定期将状态更新发布回Activity。我想确保AsyncTask正确地存在屏幕旋转或其他破坏条件,如OOM。

I've read this thread on the android-developers list,反过来led me to this implementation,这几乎就是我的需要。但是,我的AsyncTask的最后一步是从内容解析器中删除一些数据。非常重要的是不要跳过此步骤,因为数据是敏感的,在正常情况下不应留在手机上。但是,ContentResolvers来自Contexts,在本例中是Activity,使用此方案,当AsyncTask准备好删除时,Activity可能为null。

从AsyncTask构建的Activity获取ContentResolver并保持活动的生命周期是否安全?如果没有,我该怎么做才能处理这种情况?

1 个答案:

答案 0 :(得分:2)

为什么不从应用程序中获取ContentResolver?您需要了解Activity和Context背后的不同概念 - 仅仅因为Activity是一个Context,并不意味着您需要将Activity用于它所执行的所有任务。仅将活动用于UI内容