取消内部的AsyncTask

时间:2013-09-22 20:17:39

标签: java android android-asynctask

所以我的问题如下,我有一个从首选项文件调用的AsyncTask类,即。意图从xml文件中调用。这个AsyncTask类是持续运行的,因为我正在对一个房间内的声音进行实时FFT,并且只有在我按下返回按钮时才会取消。我无法检查是否按下了键,因为此类扩展了AsyncTask,因此我无法正确结束线程以使其达到onCancelled()状态。我可以考虑结束这个的唯一另一种方法是创建一个从xml文件调用的备用类,该文件又调用此类并在类对象上调用.cancel(true)。围绕这个的任何其他想法?

1 个答案:

答案 0 :(得分:0)

你可以发布一些代码吗?

在您的调用方法中(您可以在其中检查密钥),您可以调用myASyncTask.cancel(),然后在AsyncTask的doInBackground()方法中,检查{{1}然后打破你的循环并返回到你的AsyncTask的重写isCancelled()方法。

http://developer.android.com/reference/android/os/AsyncTask.html#cancel(boolean)

这有帮助吗?