Android处理许多HTTP请求

Android处理许多HTTP请求,android,Android,我正在构建一个需要轮询Web服务器的应用程序。现在,我创建了一个递归方法来请求服务器,当返回响应时,它会重新启动,稍后我可能会在两者之间进行睡眠 现在因为我需要这个密集的请求轮询。我希望优化实际代码,使每个请求的工作量尽可能少 我想我可以创建一个HttpGet(请求)和一个DefaultHttpClient onces,然后反复重用这些实例。 看 问题是我在收到20个请求后收到OutOfMemory错误 请参阅此处的错误日志 有没有更好的方法来处理这么多的请求???在问题本身中发布代码可能更好

我正在构建一个需要轮询Web服务器的应用程序。现在,我创建了一个递归方法来请求服务器,当返回响应时,它会重新启动,稍后我可能会在两者之间进行睡眠

现在因为我需要这个密集的请求轮询。我希望优化实际代码,使每个请求的工作量尽可能少

我想我可以创建一个HttpGet(请求)和一个DefaultHttpClient onces,然后反复重用这些实例。 看

问题是我在收到20个请求后收到OutOfMemory错误

请参阅此处的错误日志


有没有更好的方法来处理这么多的请求???

在问题本身中发布代码可能更好

也就是说,问题是没有一个请求可以被垃圾收集,因为它们都不会超出范围;您不断地向上构建调用堆栈,而不退出
poll
方法

您应该使用某种延迟机制,允许您退出方法,同时仍然安排一些要完成的工作。这样的东西应该足够了:

new Handler().post(new Runnable() {
    @Override
    public void run() {
        poll();
    }
});

嗨,马修,这很有道理!非常感谢!