我在一个jar中有一个API,它使用AsyncTask在后台执行一些工作。我需要等待返回结果,然后再用这个结果做一些事情。
我在onPostExecute()方法中回信给一个类,然后在UI线程上处理结果,但是处理程序需要在另一个项目中完全被定义为回调,所以我不能只在onPostExecute。
在第二个项目中,我需要等待AsyncTask结束AND以便处理响应,然后我需要将处理程序的结果显示在第二个活动中的TextView中项目。
Thread.sleep和使用CountDownLatch不起作用,因为处理是在UI线程中完成的。有没有办法做这样的事情?
答案 0 :(得分:2)
如果我理解正确,你需要在一个jar和UI中有AsyncTask
,需要在另一个jar中更新。如果将它们作为一个应用程序运行,它们所在的位置无关紧要。由于您提到涉及某些回调,因此您可以在onPostExecute
中执行此回调。
以下是大致的事件序列
TextView
更新为构造函数的参数的回调AsyncTask
在实例变量AsyncTask
AsyncTask
在onPostExecute
调用带有适当参数的回调方法
TextView