【发布时间】:2012-10-31 00:57:27
【问题描述】:
我正在为my local cinematheque 编写一个粉丝应用程序,其中显示了接下来几天的放映日历。每天的电影列表是使用来自该站点的parametrized HTTP call 检索的(答案包含希伯来语,所以如果您单击链接并得到一些胡言乱语,这可能是可以的)。
应用程序显示接下来八天的日程安排,因此它会根据每天的日程安排请求拨打 8 个电话。
private class GetMoviesTask extends AsyncTask<Integer, Void, List<Film>>
doInBackground()每天检索电影列表,onPostExecute()更新界面。
从MainActivity.onCreate()调用AsyncTask:
for (int i=0; i<NUMBER_OF_DAYS_TO_VIEW; i++){
new GetMoviesTask().execute(i);
}
问题是 AsyncTask 不是并发执行的。日子一天又一天慢慢加载,慢得令人痛苦:
同时启动这些 AsyncCall 的最佳方式是什么?
【问题讨论】:
-
为什么一定要并行?为什么不按顺序打呢?
-
@st0le 在这种情况下,我认为顺序 HTTP 调用是一种专业的尴尬。当我可以在
~TIME_PER_CALL中提供信息时,为什么还要让用户等待8*(TIME_PER_CALL)?
标签: android concurrency android-asynctask