2016-11-23 62 views
0

这是更高级别的理解问题。Android多个asynctasks获取网络响应而不是一个

我现在要做的是运行一个Asynctask,它连续执行6个方法,每个方法都是一个不同的网络请求来检索数据。我想知道如果不是让1个asynctask连续执行这些请求,而是将它减少查询开销并获取时间,如果我要将所有6个方法分离到它们的OWN Asynctasks中并连续执行它们以创建6个后台线程?

我现在使用URLConnection和InputStreamReader来获取数据。 Android系统会允许这样的实现吗?如果是这样,它是否会提高从各种网络调用中检索所有数据所需的等待时间?

在此先感谢!

回答

0

通常,即使您一起启动多个实例,AsyncTasks也可以在单个线程上串行执行。如果你想在并行运行它们,你会想使用类似

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
    new MyAsyncTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); 
} else { 
    new MyAsyncTask().execute(); 
} 

为了更快的结果,并能够轻松运行多个查询,可以考虑使用一个网络图书馆像Retrofit代替的AsyncTask,因为他们处理像方向改变一样的常见问题。