android – AsyncTask – 如何在使用已更新的值之前等待onPostExecute()完成

我在一个jar中有一个API,它使用AsyncTask在后台执行一些工作.我需要等待返回结果然后再用这个结果做一些事情.

我在onPostExecute()方法中回信给一个类,然后在UI线程上处理结果,但是处理程序需要在一个不同的项目中完全被定义为回调,所以我不能只在onPostExecute中完成工作.

在第二个项目中,我需要等待AsyncTask结束AND以便处理响应,然后我需要在第二个项目的活动中向TextView显示处理程序的结果.

Thread.sleep和使用CountDownLatch不起作用,因为处理是在UI线程中完成的.有没有办法做这样的事情?

最佳答案 如果我理解正确,你需要在一个jar和UI中使用AsyncTask,需要在另一个jar中更新.如果将它们作为一个应用程序运行,它们所在的位置无关紧要.由于您提到涉及一些回调,您可以在onPostExecute中执行此回调.

以下是一系列近似事件

> jar 2中的活动创建异步任务并传递知道如何将TextView作为参数更新为构造函数的回调
> AsyncTask在实例变量中存储回调
> Activity执行AsyncTask
> onPostExecute中的AsyncTask使用适当的参数调用回调方法
>回调更新TextView

点赞