我正在尝试编写一个为长时间运行的操作生成 AsyncTask 的 Activity,并定期将状态更新发布回 Activity。我想确保 AsyncTask 能够正确地在屏幕旋转或其他破坏条件(如 OOM)中幸存下来。
我已经阅读了 android-developers list 上的这个线程,这反过来又引导我实现了这个实现,这几乎是我所需要的。但是,我的 AsyncTask 的最后一步是从内容解析器中删除一些数据。不能跳过这一步非常重要,因为数据是敏感的,在正常情况下不应该留在手机上。但是,ContentResolvers 来自 Contexts,在本例中是 Activity,并且使用此方案,当 AsyncTask 准备好执行删除操作时,Activity 可能为空。
在 AsyncTask 构造中从 Activity 获取 ContentResolver 并在 Activity 的生命周期之后保持它是否安全?如果不是,我该怎么办才能处理这种情况?