5

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

我已经阅读了 android-developers list 上的这个线程,这反过来又引导我实现了这个实现,这几乎是我所需要的。但是,我的 AsyncTask 的最后一步是从内容解析器中删除一些数据。不能跳过这一步非常重要,因为数据是敏感的,在正常情况下不应该留在手机上。但是,ContentResolvers 来自 Contexts,在本例中是 Activity,并且使用此方案,当 AsyncTask 准备好执行删除操作时,Activity 可能为空。

在 AsyncTask 构造中从 Activity 获取 ContentResolver 并在 Activity 的生命周期之后保持它是否安全?如果不是,我该怎么办才能处理这种情况?

4

1 回答 1

2

为什么不从 Application 获取 ContentResolver ?您需要了解 Activity 和 Context 背后的不同概念——仅仅因为 Activity 是 Context,并不意味着您需要将 Activity 用于它所做的所有任务。仅将 Activity 用于 UI 内容

于 2011-04-15T12:19:43.623 回答