这是一个设计特定的问题,但我正在寻找正确的建议。
在我的应用程序中,我有6页A,B,C ...每个页面都将从服务器下载数据并显示它。在这种情况下,下面提到的方法之一将是好的。
1.对于每个A,B,C编写内部asynctask类 2.为这些活动中的每一个写作asyntaskA,asyntskB等单独的asyntasks 3.通过requestcontroller类编写单个asynctask和每个活动的路由请求,该类通过传递context,url参数创建asyctask实例
如果采用第二种方法,是否可以在Activity
状态下运行一个Activity
和另一个onpause
,而其asynctask
仍在运行?
答案 0 :(得分:1)
在每个页面中,如果您正在执行相同类型的操作(在这种情况下,下载数据并显示它),则无需编写单独的AsyncTask
类。只需根据需要创建尽可能多的实例,然后调用execute()
方法。 AsyncTask
类将以线程安全的方式处理它。
您的问题的第二部分有点不清楚,但如果您的意思是在活动之间切换,则可以使用单个AsyncTask
的多个实例。您需要保存并恢复活动状态。
如果您执行的操作非常耗时,例如超过几秒钟,那么使用AsyncTask
就不安全了。更好的选择是Service
。
答案 1 :(得分:0)
多个AsyncTasks没有问题。在我的一个应用程序中,我有一个带图像的网格视图,每个图像加载和生成缩略图图像都有一个AsyncTask。它们都很平行地运行。