This question already has answers here:
Android AsyncTask - Order of execution
(6个答案)
已关闭6年。
我正在编写一个执行以下操作的应用程序:
解析网页并从中提取图像URL 将它们解码为
我不希望它们在UI线程上运行,并且很明显,如果没有完成第一点,就无法执行第二点。
我可以链接AsyncTasks来实现吗?我的意思是从第一个的
这被认为是不好的做法吗?如果是这样,我应该怎么做?
(这是一个理论性的问题,我不是在要求代码)
(6个答案)
已关闭6年。
我正在编写一个执行以下操作的应用程序:
Bitmap
并以ImageView
显示它们我不希望它们在UI线程上运行,并且很明显,如果没有完成第一点,就无法执行第二点。
我可以链接AsyncTasks来实现吗?我的意思是从第一个的
onPostExecute()
方法开始第二个。这被认为是不好的做法吗?如果是这样,我应该怎么做?
(这是一个理论性的问题,我不是在要求代码)
最佳答案
您绝对可以做到这一点,并且如果确实需要的话,将多个AsyncTasks
链接起来也没有任何问题。我想强调一点:仅在您确实必须时才使用。AsyncTasks
给它们带来一定的开销。如果将两个AsyncTasks
链在一起,则将产生两倍的开销。你不要那样您应该使用最少的AsyncTasks
。
在您的情况下,该解决方案实际上看起来非常简单:仅需一个AsyncTask
即可完成所有工作。问问自己:真的需要两个单独的AsyncTasks
吗?从您的描述来看,它看起来确实不是这样。如果仅使用一个AsyncTask
,则与使用两个AsyncTasks
相比,代码的运行效率将大大提高。
请注意,AsyncTask
仅应用于耗时数秒且响应用户操作而启动的简短操作。如果您需要在后台执行一些长时间运行的操作,那么AsyncTask
可能不是最佳解决方案。我不能从您的描述中真正看出您要执行的操作是否适合ojit_code,但是如果您所做的工作不符合我上面描述的标准,那么使用替代解决方案可能会更好。
09-29 21:31