我有一个方法如下:
public String getRequest(String url, String string) {    new Thread() {       public void run() {          ..........       }.start();       String result = ;       return result;}
怎样等待这个线程执行完毕然后返回一个值给result呢?最好使用handler!谢谢

解决方案 »

  1.   

    把result先定义啊,然后在线程执行的时候把要返回的值赋给result?
      

  2.   

    final String result = null;Thread t = new Thread() { public void run() {... result = "???";} };
    t.start();
    try { t.join(); } catch (Exception e) {}if (result != null) {...}
      

  3.   


    result是final了还怎么给它赋值。
    还有楼主这需求有什么意义。既然要在方法结束前将result值计算好并返回,直接在方法体中计算就行了,干嘛要另外开辟一个线程。
      

  4.   

    override main thread handler
    Handler mHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
    switch (msg.what) {
    case ABC:
    //get return value
    break;
    }
    }
    };
    private class MyThread extends Thread {
         @Override
         public void run() {
         loop....
                 //before thread finish,
                 Message m = mHandler.obtainMessage(ABC, 0, 0, null);
    mHandler.sendMessage(m);
         }       
        }这是你要求的handler一种方法吧,不过这样太费劲了吧。
      

  5.   

    如果需要等待这个线程执行完毕,这里就没必要使用线程了,直接把run方法里边的方法体拿出来吧.