0

这不包括弱引用

我是 MAT 的新手,不知道如何检测和消除泄漏,但为什么 volley 在我所有的泄漏背后?

我该如何解决这个问题?

4

2 回答 2

1

在运行会重复背景/重新显示应用程序的自动化测试时,我发现了同样的问题。我的解决方案(至少解决了运行测试的问题)是在 tearDown() 中执行此操作:

    // cancel() for each request will get them removed, which can otherwise leak memory
    MyApplication.getRequestQueue().cancelAll(new RequestQueue.RequestFilter() {
        @Override
        public boolean apply(Request<?> request) {
            return true;
        }
    });

根据您的请求队列的管理方式,您可以执行类似的操作。问题是当队列停止时,请求会留在队列中并且永远不会被清理。因此,无论您在哪里开始/停止队列,都需要格外小心以取消任何未完成的请求。

于 2016-08-15T16:04:04.947 回答
0

问题是我没有为我的 RequestQueues 使用单例模式 https://developer.android.com/training/volley/requestqueue.html#singleton 这个链接解决了我的问题

@Turnsole 的建议也很可靠,当我不再需要它们时,一定会取消请求

于 2016-08-15T16:21:33.510 回答