Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 取消内部的异步任务_Java_Android_Android Asynctask - Fatal编程技术网

Java 取消内部的异步任务

Java 取消内部的异步任务,java,android,android-asynctask,Java,Android,Android Asynctask,所以我的问题如下,我有一个AsyncTask类,它是从首选项文件(即,从xml文件中调用的)调用的。这个AsyncTask类在我对房间内的声音进行实时FFT时一直在运行,只有当我按下返回按钮时才会取消。由于该类扩展了AsyncTask,我无法检查是否按下了键,因此我无法正确结束线程,使其达到onCancelled()状态。我可以考虑结束这一过程的唯一其他方法是创建一个备用类,该类从xml文件调用,该文件反过来调用该类并调用类对象上的.cancel(true)。。还有其他的想法吗 你能发布一些代码

所以我的问题如下,我有一个AsyncTask类,它是从首选项文件(即,从xml文件中调用的)调用的。这个AsyncTask类在我对房间内的声音进行实时FFT时一直在运行,只有当我按下返回按钮时才会取消。由于该类扩展了AsyncTask,我无法检查是否按下了键,因此我无法正确结束线程,使其达到onCancelled()状态。我可以考虑结束这一过程的唯一其他方法是创建一个备用类,该类从xml文件调用,该文件反过来调用该类并调用类对象上的.cancel(true)。。还有其他的想法吗

你能发布一些代码吗

在调用方法中(您可以在其中检查键),您可以调用
myASyncTask.cancel()
,然后在AsyncTask的
doInBackground()
方法中,您可以检查
isCancelled()
,然后中断循环并返回到AsyncTask的重写
onCancelled()
方法


这有帮助吗?

我的问题是,该类(扩展了AsyncTask)是从首选项XML文件调用的,即“是的,那么,我认为您最初的想法是最好的。使用在onCreate()中调用的私有AsyncTask类创建活动。这样你就可以检查钥匙之类的东西了。做得很好,一切都很好。谢谢!如果这个答案对你有帮助,请随意接受/投票:)