我在android项目上使用了volley,但无法获得有效的解决方案。
基本上,我有大量的东西要连续发送(通过带有volley lib的http)。当我发送10个时,这没问题,但是如果连续执行,最终将耗尽所有内存,并且由于占用的热量很大,该应用也被终止。
下面是演示代码块
requestqueue = Common.getQueue();//it will get a normal requestqueue
for (int i = 0; i < waitinglist.size(); i++) {
synccopyreq.filedatas.add(Common.getDataFromWaitinglist(i));
Common.httpPostWithQueue( requestqueue,"tagfullcopy", httpEndPoint+"/sync/fullcopy", gson.toJson(synccopyreq), that, new Common.CallbackInterface() {
@Override
public void completed(String result)
{
Log.i("shawhu","ok done");
}
});
}
[请阅读,我已经尝试了探查器,当整个过程完成时(例如处理10个项目时),内存使用情况会下降,但是如果我连续运行它,则不会。内存使用量持续上升,最终将破坏应用程序(由android系统终止)。如何在循环的每次迭代中释放内存?
请帮助我,谢谢!
没有确定的方法以拥有自己的GC的语言手动释放内存。
但是,您可以使用GC
在Java中请求System.gc()
调用。
请参阅:https://www.geeksforgeeks.org/garbage-collection-java/
注意:虽然我们可以随时随地调用此方法,但仍不能保证垃圾回收会立即运行。
尽管我不建议您像这样严重使用GC
。