如何在一个Activity中运行两个AsyncTasks?

Sae*_*umi 7 android android-asynctask

我有两个Activitys(mainActivity&downloadActivity),我有两个AsyncTasksdownloadActivity

downloadActivity首先它执行getFileAsyncTask用于读取JSON文件添加一些图片,并创建一个ListView从图像,如果图像上用户点击,将downloadAsyncTask被调用,它开始从网上下载一些东西.我的问题是在这里:第二,当AsyncTask运行我回去mainActivity再次复出downloadActivity第一AsyncTask不叫,直到downloadAsyncTask完成

public class downloadActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        new getFileAsyncTask().execute();
        ...
    }
    private class getFileAsyncTask extends AsyncTask<Void, Void, Void> {
        @Override
        protected Void doInBackground(Void... params) {
        //fetch a json file from internet and add images in ListView
            return null;
    }
    //there is an BaseAdabter class 
    //if user clicks on an image it calls this downloadAsyncTask.execute()
    private class downloadAsyncTask extends AsyncTask<Void, Integer, Void> {
        @Override
        protected void onPreExecute() {
        //download the file
    }

    @Override
    protected Void doInBackground(Void... unused) {
        //download the file
    }
}
Run Code Online (Sandbox Code Playgroud)

注意: 我想写一些像购物应用程序.例如,用户可以下载文件并冲浪到商店查看产品.

And*_*ter 16

如果要AsyncTasks并行运行多个,则可以调用executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR)而不是execute()执行任务.默认情况下,AsyncTasks以串行方式运行,先到先服务.

请注意,两个线程不会在相同的数据上进行交互,这可能会导致一些奇怪且难以跟踪的错误.