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

时间:2011-07-27 17:27:11

标签: android android-asynctask

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

以下是大致的事件序列

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