我试图写一个活动,产生一个长时间运行的操作AsyncTask,并定期发布状态更新回活动。我想确保AsyncTask存活屏幕旋转或其他破坏条件,如OOM正确。
我在android开发者列表上读过这个线程,这反过来又让我实现了这个,这几乎是我需要的。然而,我的AsyncTask的最后一步是从内容解析器中删除一些数据。不要跳过这一步是非常重要的,因为数据是敏感的,在正常情况下不应该留在手机上。然而,ContentResolvers来自上下文,在这种情况下是Activity,并且使用这种方案,Activity可能在AsyncTask准备删除时为空。
从AsyncTask构造的活动中获得ContentResolver并坚持到活动的生命周期过去是安全的吗?如果没有,我该怎么处理这个案子?
为什么不从应用程序中获取ContentResolver ?你需要理解活动和上下文背后的不同概念——仅仅因为活动是一个上下文,并不意味着你需要使用一个活动来完成它所做的所有任务。