我有一个方法如下:
public String getRequest(String url, String string) { new Thread() { public void run() { .......... }.start(); String result = ; return result;}
怎样等待这个线程执行完毕然后返回一个值给result呢?最好使用handler!谢谢
public String getRequest(String url, String string) { new Thread() { public void run() { .......... }.start(); String result = ; return result;}
怎样等待这个线程执行完毕然后返回一个值给result呢?最好使用handler!谢谢
解决方案 »
- 如何使LinearLayout自动填充剩余空间??
- 自己写的googlemap程序怎么一装到自己的手机上就是灰屏了...在模拟器上是好的,是不是签名的问题还是谷歌的什么没有设置?
- 4.0 中的Menu怎么能同时显示图片和字符串?
- 别人托问一个问题,请大家帮忙解决
- 求源码--点击一下按钮,出现一个半透明的ListView,第二次点击使其消失?
- 如何在eclipse中调试app?
- 问个获取驱动信息的弱智问题:
- 调用相机相册,回调data为null
- Android语音用speex编解码边录边放,求大神解决参数问题
- android怎么获取手机亮屏了多长时间?
- 搭建android项目环境,新建项目启动运行报错
- Android中如何通过NTFS-3g 自动 挂载多分区的NTFS移动硬盘
t.start();
try { t.join(); } catch (Exception e) {}if (result != null) {...}
result是final了还怎么给它赋值。
还有楼主这需求有什么意义。既然要在方法结束前将result值计算好并返回,直接在方法体中计算就行了,干嘛要另外开辟一个线程。
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一种方法吧,不过这样太费劲了吧。