【发布时间】:2016-12-21 19:23:24
【问题描述】:
【问题讨论】:
标签: android memory-leaks out-of-memory android-volley eclipse-memory-analyzer
【问题讨论】:
标签: android memory-leaks out-of-memory android-volley eclipse-memory-analyzer
在运行会重复后台/重新显示应用程序的自动化测试时,我发现了同样的问题。我的解决方案(至少解决了运行测试的问题)是在 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;
}
});
根据您的请求队列的管理方式,您可以执行类似的操作。问题是当队列停止时,请求会留在队列中并且永远不会被清理。因此,无论您在哪里开始/停止队列,都需要格外小心以取消任何未完成的请求。
【讨论】:
问题是我的 RequestQueues 没有使用单例模式 https://developer.android.com/training/volley/requestqueue.html#singleton 这个链接解决了我的问题
@Turnsole 的建议也很中肯,当我不再需要请求时,一定会取消请求
【讨论】: