如何让外类等待内部AsyncTask类?

时间:2013-01-14 07:55:48

标签: android multithreading android-asynctask signals

我有一个外部类方法,它执行一个扩展AsyncTask的内部类,我希望那个外部方法然后睡眠,直到AsycnTask告诉它继续。基本上,我从内部类中的DB中提取一些东西,并从外部类中调用它,但是我需要外部类等到实际上已经检索它才会厌倦访问它。

public class A{
    String response;
    public String returnResponse{
           new B().execute();

           // wait for signal from B

           return response;
    }

    private class B extends AsyncTask<String, Void, Void>{
          response = string pulled from online db;
          //once response has been set, signal A.returnResponce to stop waiting
    }

有什么想法吗?

谢谢,

2 个答案:

答案 0 :(得分:1)

使用

new B().execute().get();

而不是

new B().execute();

等待AsyncTask执行完成

答案 1 :(得分:0)

使用此

 new B().execute().get();

代替你的代码

 new B().execute();

这将等待来自B的信号。