【问题标题】:AsyncTasks parallel executionAsyncTasks 并行执行
【发布时间】:2015-05-10 11:49:03
【问题描述】:

我对 Async 的执行有点怀疑。任务我想尽量减少我的应用程序正在执行的http请求所花费的时间,所以在互联网上进行了一些研发之后,我选择了下面描述的选项,我的问题是使用下面描述的代码,我的请求是否会并行处理,如果是,这是一种最有效的方法,如果不是,我怎样才能让它们并行执行,这样用户就不必等待太多! 最好的问候。

 if (isInternetAvailable) {

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {


                new DownloadXmlTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, URLORDERLIST);
                new DownloadXmlTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, URLORDERDETAILS);
                new DownloadXmlTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, URLCUSTOMERDETAILS);

            } else {


                new DownloadXmlTask().execute(URLORDERLIST);
                new DownloadXmlTask().execute(URLORDERDETAILS);
                new DownloadXmlTask().execute(URLCUSTOMERDETAILS);

            }


            handler.post(new Runnable() {

                @Override
                public void run() {
                    Toast.makeText(
                            getApplicationContext(),
                            "Fetch Data",
                            Toast.LENGTH_LONG).show();
                }
            });
        } else {
            handler.post(new Runnable() {

                @Override
                public void run() {
                    Toast.makeText(

                            getApplicationContext(),
                            "Please Try Again Later,No internet Connectivity Detected!",
                            Toast.LENGTH_SHORT).show();

                }
            });
        }

【问题讨论】:

  • 是的,它会并行执行,尝试使用executeOnExecutor(AsyncTask.SERIAL_EXECUTOR, mArgs);,你会发现它有多慢
  • running parallel AsyncTask 的可能重复项

标签: android android-asynctask


【解决方案1】:

编辑

  1. task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params) 用于并行执行
  2. task.executeOnExecutor(AsyncTask.SERIAL_EXECUTOR, params) 用于串行执行
  3. task.execute() 默认/常用选项

【讨论】:

    猜你喜欢
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    • 2020-03-06
    • 1970-01-01
    相关资源
    最近更新 更多