我有一个Service
从我开始AsyncTask
从给定的计时器做后台任务。我的需要需要短暂的网络任务,这就是为什么我坚持Asynctask
。从服务传递上下文而不泄漏它
从Asynctask
我在做一些操作(如启动通知),需要context
。现在,当我在我的AsyncTask
初始化context
我得到一个警告“这个领域泄漏上下文对象。”
我已经看到了关于同一问题的数量,但他们都被有关Activity/Fragment
。所以我的问题是,我如何在我的AsyncTask
(顶级课程)中使用context
而不会漏水?
我也在做一些'Jsoup'调用,这就是为什么我严重依赖'onPostExecute'(来检查结果是否为null)。调用'getApplicationContext()'将是最佳实践还是持有'服务上下文'的'弱引用'? –
@ Michal_196:解析HTML与主应用程序线程无关;你不需要'onPostExecute()'来解析HTML。关于'Context',请使用'getApplicationContext()'。这将返回一个单独的'Context'('Application'的子类),一个初始化为启动过程的一部分。实际上,这个单例实际上是“预泄漏”的,你不能通过持有引用来进一步泄漏它。 – CommonsWare