【问题标题】:Cancel an AsyncTask inside itself取消自身内部的 AsyncTask
【发布时间】:2013-09-23 04:26:35
【问题描述】:

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

【问题讨论】:

    标签: java android android-asynctask


    【解决方案1】:

    你能发布一些代码吗?

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

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

    这有帮助吗?

    【讨论】:

    • 我的问题是类(扩展 AsyncTask)是从首选项 XML 文件调用的,即。 ''
    • 是的,那么,我认为您最初的想法是最好的。使用在 onCreate() 中调用的私有 AsyncTask 类创建一个活动。这样您就可以检查密钥等。
    • 做得很好,一切都很好。谢谢
    • 太棒了!如果它对您有帮助,请随时接受/支持这个答案:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 1970-01-01
    相关资源
    最近更新 更多