在一个线程里如何把取到的数据传回主线程呢?

Rudeeeeeee 2008-06-23 11:57:27
例如:
class A{

public Data data;

init(){
getData();

}

getData(){

new Thread(){

public void run() {
GetDataHandler handler = new GetDataHandler();
handler.getNewData();
}
}.start();

}
}

如何把在getData线程里取到的data赋给主线程里的data
...全文
313 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
homesos 2008-06-24
  • 打赏
  • 举报
回复
写的很全
homesos 2008-06-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 java2000_net 的回复:]
1 一般在初始化线程是,可以携带一个主线程的实例。比如


Java codeMyThread extends Thread{
MyThread(MainThread main){
this.main = main; // 在线程里保存起来即可,然后再以后需要的时候,调用其方法即可
}
}



2 内部类可以直接调用主类的变量,比如

Java codedata = handler.getNewData();
//或者方法
setData(handler.getNewData());
[/Quote]
zengcity 2008-06-24
  • 打赏
  • 举报
回复
顶2楼的 第2种方法不错
PQjava 2008-06-23
  • 打赏
  • 举报
回复
建议用内部类的方法,将你的getDate功能线程写成一个内部类,就可以了。
pipi_jf 2008-06-23
  • 打赏
  • 举报
回复
楼上说得很清楚了,我一般采用第二种方式
老紫竹 2008-06-23
  • 打赏
  • 举报
回复
1 一般在初始化线程是,可以携带一个主线程的实例。比如

MyThread extends Thread{
MyThread(MainThread main){
this.main = main; // 在线程里保存起来即可,然后再以后需要的时候,调用其方法即可
}
}


2 内部类可以直接调用主类的变量,比如
data = handler.getNewData();
//或者方法
setData(handler.getNewData());
pipi_jf 2008-06-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 internet2006yn 的回复:]
内部类对手机程序来说可不是好东西,内部类越来越多对这个东西来说其不是可以空间越来越少
[/Quote]

内部类没有你想像的那么可怕的,现在的手机硬件发展很快,开发J2ME应用已经不像以前那样尽量减少类的数量了,
现在越来越注重代码质量,很多J2SE甚至是J2EE上的设计模式越来越多地应用到了J2ME的开发当中。
internet2006yn 2008-06-23
  • 打赏
  • 举报
回复
内部类对手机程序来说可不是好东西,内部类越来越多对这个东西来说其不是可以空间越来越少
lisl2003 2008-06-23
  • 打赏
  • 举报
回复
每天进步一点点……
每天进步一点点……

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧