如何在其调用程序线程上调用接口回调?

时间:2016-05-03 05:11:49

标签: java android multithreading

我有一个ans = 0 同时运行多个线程。在ThreadPoolExecuter中,我想在另一个线程中运行方法,所以,我在execute方法中创建了另一个线程(线程A),现在我想得到线程A的结果在执行程序线程中运行。 让我用一个样本澄清:

Runnable

ThreadPoolExecuter threadPool = Executors.newFixedThreadPool(5); threadPool.execute(new Runnable() { @Override public void run() { // do something in threadPool thread // call method in thread A getInfo(new QueryExecutorInterface() { @Override public void onPostExecute(Cursor cursor) { // do other thing in threadPool thread again. } }); } }); 是我想要传递给线程QueryExecutorInterface并在A线程上获得结果的界面。因为我已经调用了侦听器,就像跟随方法一样,我得到了线程ThreadPool中的结果:

A

PS:我可以使用 class A extend Thread { @Override public void run() { // do something in thread A. queryExecutorInterface.onPostExecute(cursor); } } 类而不是使用线程ReentrantLock来修复此方案。但是由于我还有另外一层,我不想使用锁定。

1 个答案:

答案 0 :(得分:1)

您只需要将另一个Runnable添加到ThreadPool中。所以你必须让ThreadPool成为最终版本:

{{1}}