如何在没有 post 执行链接的情况下 运行 同步异步任务?
How do I run Async tasks synchronously without post execute chaining?
我有三个异步任务,我希望能够同步 运行 它们。如果不将它们放在彼此的 onPostExecute
中,我该怎么做呢?很抱歉,如果这已被涵盖,但我似乎无法在 google 或此处找到正确的关键词。
new parseZip().execute();
new loadContent().execute();
new playContent().execute();
如有任何帮助,我们将不胜感激,或者只是 link 一个线程
谢谢
i'd like to be able to run them synchronously. How can I do that
without putting them in onPostExecute of eachother?
为三个独立的任务创建您自己的线程并同步它们以串行执行。参见 here。这张幻灯片的作者还在 Android.
中写了一本关于多线程的书
另请参阅 Specifying the Code to Run on a Thread 示例。
顺便说一句,默认情况下 AsyncTask
是 运行 连续的。如果我是你,我会简单地将它们放在彼此的 onPostExecute()
中。这有什么问题吗?
您可以使用 getStatus()
查询 AsyncTask
的状态,以检查给定任务是否已结束,然后开始另一个任务,但这意味着要不断检查的状态wach 任务,这不是一个好主意。
你也可以像你说的那样,在彼此的onPostExecute
上开始下面的任务,但是看你的任务名称我觉得你也是单独使用的任务,所以这意味着某种标志来控制是否应该链接任务。
也许更好的方法是创建一个新的 AsyncTask
来执行每个游览任务完成的所有工作(可能需要一些重构来完成方法中的工作以避免重复代码)。
来自文档:
AsyncTask is designed to be a helper class around Thread and Handler
and does not constitute a generic threading framework.
所以,也许在你的情况下 AsyncTask
不是完成这项工作的正确工具,你应该考虑使用@ZygoteInit 建议的普通线程。
我有三个异步任务,我希望能够同步 运行 它们。如果不将它们放在彼此的 onPostExecute
中,我该怎么做呢?很抱歉,如果这已被涵盖,但我似乎无法在 google 或此处找到正确的关键词。
new parseZip().execute();
new loadContent().execute();
new playContent().execute();
如有任何帮助,我们将不胜感激,或者只是 link 一个线程
谢谢
i'd like to be able to run them synchronously. How can I do that without putting them in onPostExecute of eachother?
为三个独立的任务创建您自己的线程并同步它们以串行执行。参见 here。这张幻灯片的作者还在 Android.
中写了一本关于多线程的书另请参阅 Specifying the Code to Run on a Thread 示例。
顺便说一句,默认情况下 AsyncTask
是 运行 连续的。如果我是你,我会简单地将它们放在彼此的 onPostExecute()
中。这有什么问题吗?
您可以使用 getStatus()
查询 AsyncTask
的状态,以检查给定任务是否已结束,然后开始另一个任务,但这意味着要不断检查的状态wach 任务,这不是一个好主意。
你也可以像你说的那样,在彼此的onPostExecute
上开始下面的任务,但是看你的任务名称我觉得你也是单独使用的任务,所以这意味着某种标志来控制是否应该链接任务。
也许更好的方法是创建一个新的 AsyncTask
来执行每个游览任务完成的所有工作(可能需要一些重构来完成方法中的工作以避免重复代码)。
来自文档:
AsyncTask is designed to be a helper class around Thread and Handler and does not constitute a generic threading framework.
所以,也许在你的情况下 AsyncTask
不是完成这项工作的正确工具,你应该考虑使用@ZygoteInit 建议的普通线程。