Android 如何取消AsyncTask或所有AsyncTask,包括来自同一活动的嵌套AsyncTask?

Android 如何取消AsyncTask或所有AsyncTask,包括来自同一活动的嵌套AsyncTask?,android,android-asynctask,Android,Android Asynctask,我有活动使用AsyncTask打开游标而不是生成子AsyncTask以呈现项目用游标读取 活动在游标异步任务上执行,但未看到项目的子项异步任务 如何取消指定活动的所有正在运行的AsyncTask任务(包括嵌套任务) 如何取消指定AsyncTask的所有正在运行的子AsyncTask任务(如果可能的话) 我想停止从接口到不损坏视图的新命令上的所有任务。您执行的异步任务没有管理器 您必须跟踪已创建的异步任务的所有新实例,并使用cancel(boolean-mayinterruptfrunning)方

我有活动使用AsyncTask打开游标而不是生成子AsyncTask以呈现项目用游标读取

活动在游标异步任务上执行,但未看到项目的子项异步任务

如何取消指定活动的所有正在运行的AsyncTask任务(包括嵌套任务)

如何取消指定AsyncTask的所有正在运行的子AsyncTask任务(如果可能的话)


我想停止从接口到不损坏视图的新命令上的所有任务。

您执行的异步任务没有管理器

您必须跟踪已创建的异步任务的所有新实例,并使用
cancel(boolean-mayinterruptfrunning)
方法关闭它们。
注意,取消任务不会阻止它在中间。如果AsyncTask正在运行循环,则必须签入
doInBackground
-
isCanceled()

,然后可以检查公共标志(可能是某个单例的属性,如应用程序类本身或活动)。一旦此标志变为真,您的任务将退出循环

很好的建议-看起来我必须管理任务。一些额外的问题是,AsyncTasks onPostExecute是否会在生成任务时按顺序执行,还是需要在Android中进行管理?onPostExecute会在doInBackground完成后立即生成(除非任务被取消,然后根本不会生成)。所以答案是否定的-没有顺序。谢谢,所以它可以像正常线程一样工作-很高兴听到-我会接受答案。我刚刚发现,从蜂巢默认行为是改变的,因为它在一个线程中执行,如果不启用更多。请参阅(串行执行器和线程池执行器),不确定它是否发出命令,但可以。