香辣鸡丁煲
2016-05-08 09:13
采纳率: 56.5%
浏览 2.7k
已采纳

如何在子线程执行完毕后返回值?

比如一个类如下
public class a
{
private String city;

public String getCity()
{
1、开启一个线程,在线程里将城市赋值给city
2、return city;
}

}

然后在另一个activity中调用该类,并且获取到city值比如
MainActivity
{
oncreate(~)
{
a a =new a();
String city = a.getCity();
}
}
问题是如何在子线程执行完毕后,才能返回city呢?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • danielinbiti 2016-05-08 09:18
    已采纳
     public String getCity()
    {
    1、开启一个线程,在线程里将城市赋值给city,比如线程类对象是Thread tr;
    加上tr.join();或者用CountDownLatch 之类的,都可以,不过不介意这么做,失去了在create时候的多线程加快速度的意思。
    2、return city;
    }
    
    点赞 评论
  • 毕小宝 2016-05-08 10:24

    Java提供了Callable任务可以返回执行结果,然后它的get方法获取操作结果,如果线程没有返回就会阻塞直到得到值。

    点赞 评论
  • 魈痕 2016-05-09 07:20

    可以使用handler,在线程之行结束后, 用Message把值传到handler,在用接口回调就可以了,直接使用 return 是不行的,传过去的是空值,只用在二次执行后,才有值。

    点赞 评论

相关推荐 更多相似问题