在不泄漏内存的情况下,在AsyncTask中保留对ContentResolver的引用是否安全



我有一个AsyncTask,我在其中运行数据库查询。为此,我的AsyncTask子类包含一个ContentResolver类型的字段。我想知道拥有它是否安全,或者它是否会像Context(AsyncTask和Contexts)那样导致内存泄漏?

从这里我可以看到ContentResolver保留了对创建它的Context的引用(我想),所以你应该像处理任何Context引用一样处理它。

但是,既然你总是可以从ApplicationContext中使用ContentResolver,那么它使用起来是安全的。

编辑:或者您根本不需要存储ContentResolver。您始终可以通过此构造函数从现有上下文中创建一个。(该构造函数甚至不需要Context,只需传递null,它就会自动使用ApplicationContext)

最新更新