多个asyntask

时间:2012-09-18 18:06:44

标签: android android-asynctask

这是一个设计特定的问题,但我正在寻找正确的建议。

在我的应用程序中,我有6页A,B,C ...每个页面都将从服务器下载数据并显示它。在这种情况下,下面提到的方法之一将是好的。

1.对于每个A,B,C编写内部asynctask类 2.为这些活动中的每一个写作asyntaskA,asyntskB等单独的asyntasks 3.通过requestcontroller类编写单个asynctask和每个活动的路由请求,该类通过传递context,url参数创建asyctask实例

如果采用第二种方法,是否可以在Activity状态下运行一个Activity和另一个onpause,而其asynctask仍在运行?

2 个答案:

答案 0 :(得分:1)

在每个页面中,如果您正在执行相同类型的操作(在这种情况下,下载数据并显示它),则无需编写单独的AsyncTask类。只需根据需要创建尽可能多的实例,然后调用execute()方法。 AsyncTask类将以线程安全的方式处理它。

您的问题的第二部分有点不清楚,但如果您的意思是在活动之间切换,则可以使用单个AsyncTask的多个实例。您需要保存并恢复活动状态。

如果您执行的操作非常耗时,例如超过几秒钟,那么使用AsyncTask就不安全了。更好的选择是Service

答案 1 :(得分:0)

多个AsyncTasks没有问题。在我的一个应用程序中,我有一个带图像的网格视图,每个图像加载和生成缩略图图像都有一个AsyncTask。它们都很平行地运行。