gpt4 book ai didi

java - onPostExecute 没有执行; doInBackground 工作正常

转载 作者:行者123 更新时间:2023-11-30 03:19:37 25 4
gpt4 key购买 nike

我已经阅读了很多关于这个主题的类似帖子,但没有一个对我有帮助。

我有一个 AsynkTask 类,它可以很好地执行它的工作,但由于某种原因,onPostExecute 方法从未执行过。

这是我使用的代码:

public class MyPublicClass
{
private class MonitorAudioTask extends AsyncTask<Void, Void, ParseResult>
{
@Override
protected ParseResult doInBackground(Void... params)
{
// set variables
ParseResult result = null;

// do stuff
return result;
}

@Override
protected void onPostExecute(ParseResult result)
{
if (result != null)
{
// deal with result
}

//Now start the task again
_task = new MonitorAudioTask();
_task.execute(null, null, null);
}
}
}

同样,doInBackground 方法工作得很好。我在它的最后(就在 return 语句之前)完成了日志记录,以证明它运行正常。

ParseResult 类非常简单,而且被证明可以正常工作。

我已经通过在该方法的第一行进行圆顶调试日志记录来证明没有执行 onPostExecute。

任何建议都将非常受欢迎,因为我目前正在猛烈抨击我的头脑,但一无所获。

谢谢。

编辑:

我还应该提一下,我是从以前的开发人员那里接手开发这个应用程序的。这个应用程序曾经运行良好。在它工作和不工作之间发生了两件事:1) 我对从 doInBackground() 方法中调用的函数做了一些小调整。2) 看起来以前的开发人员正在使用旧版本的 ADT (JellyBean 4.1.2),而我已经安装了最新版本:4.3。

再次感谢您的帮助。

更新:我刚刚更新了我的 ADT 以拥有 4.1.2 SDK,这样我就可以在以前的程序员使用的相同版本上进行开发。我再次运行我的测试,几乎同样的事情发生了。唯一的区别是,最终我从应用程序收到了一条“应用程序没有响应”的消息。所以它看起来像 doInBackground() 正在返回它的输出,但这有点让应用程序崩溃。这是否有助于解释发生在我身上的事情?

更新:我刚刚运行了另一个,我将所有调试调用从 onProgress() 方法中进行。我想确保我的调试代码不会妨碍我。有趣的结果:没有进行任何调试调用。所以看起来 onProgress 和 onPostExecute 都没有被执行。

最佳答案

终于找到了我的问题:我在 onPostExecute() 方法的第一行进行调试调用。问题是这个特定的调试调用进行了 Web 服务调用以将消息发布到我的服务器。显然,这些类型的调用在 onPostExecute() 方法中是不允许的。

所以一旦我删除了我的调试代码,一切又开始正常工作了。

感谢大家的帮助和时间。

关于java - onPostExecute 没有执行; doInBackground 工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19391326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com