通过使用 Android 异步 Http 客户端库并行执行 http 请求



在我的安卓应用程序中,我必须从服务器并行y获取近50个数据(50 AsyncTask(。所以我通过使用executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);来实现我的逻辑。我读到executeOnExecutor一次只能运行 5 AsyncTask,并且它的队列大小为 10。我们最多可以保留 10 个待处理AyncTask .好的,现在在我的场景中,我有 50 个AsyncTask并且我无法并行执行 50 AsyncTask,因为队列的大小只有 10。所以我不能采用一起执行 50 AsyncTask的方法。

所以我想出了另一个逻辑,在那里我将一起创建和执行 5 个AyncTask。我将在每个已执行AsyncTask的回电中启动新AysncTask.

第二个逻辑满足了我的要求。它正在完美地工作。

注意:在这里我使用的是我自己的AsyncTask类,并且我正在使用Apache http客户端发出http请求。

现在,我最近听说了一个名为android-async-http的库。我想用这个库重新实现上述逻辑。

示例代码:

AsyncHttpClient client = new AsyncHttpClient();
client.get("http://www.google.com", new AsyncHttpResponseHandler() {
    @Override
    public void onSuccess(String response) {
        System.out.println(response);
    }
});

所以我的问题是,

  • 如何使用 android-async-http 库并行执行 http 请求?

  • 使用此库可以并行执行的最大AsyncTask数是多少?

原来你正在使用的这个库使用了一个 CachedThreadPool:http://www.blogjava.net/dashi99/archive/2012/08/06/384885.html

这意味着,如果您执行大量请求,它将创建线程来相应地执行它们。 如果线程空闲且未关闭,它将为请求重用线程。因此,我认为这意味着您的所有请求都将并行运行。

相关内容

  • 没有找到相关文章

最新更新