public void onClick(View v) {
// TODO Auto-generated method stub
Thread thread = new Thread(MainActivity.this);
thread.setPriority(Thread.MAX_PRIORITY);
thread.start(); System.out.println("onlick:" + line);
text.setText("来自服务器的数据:" + line);
}
以上代码是一个Button的onClick事件。
线程里设置了一个socket接收信息,得到的数据保存在全局变量line里。line初始设置为null。
text是TextView对话框。
问题是:当我点击这个按钮后,发现text里显示的是null。而且logcat里System.out.println("onlick:" + line);输出的也是null,之后才显示thread里的system.out,输出的line却是我从服务器得到的值。
怎么解决这个问题?是因为线程抢资源的原因吗?线程socketandroid
解决方案 »
- 有哪些比较好的Android推送方案
- JDBC 连接 SQLite Error Out of memory
- 新手求教
- android仿QQ代码的运行
- 自定义控件问题: 继承自View的自定义控件在Layout配置文件里属性引不出来
- android程序在什么时候停止工作线程
- Android中InflaterInputStream能否解压zlib的压缩文档
- 单击事件里如何获取这个按钮的ID或是TEXT?
- 向XML文件添加子元素
- 为什么会出现unfortunately has stopped
- Android 客户端服务器端通信 常用架构
- gallery, ImageSwitcher,TextSwitcher同时使用的问题
这个是因为你调用start后紧根着就会打印line,但这时可能line还没有值
这个是因为你调用start后紧根着就会打印line,但这时可能line还没有值那怎样解决呢,给个思路。。
这个是因为你调用start后紧根着就会打印line,但这时可能line还没有值那怎样解决呢,给个思路。。
也放handler里面啊
这个是因为你调用start后紧根着就会打印line,但这时可能line还没有值那怎样解决呢,给个思路。。
也放handler里面啊果然是这样啊。。刚刚我也是这样做的。。但是总感觉handle是为了更新ui来用的有没有别的方法?handler是不是就是线程间通信用的?我刚学android不久,不太懂
这个是因为你调用start后紧根着就会打印line,但这时可能line还没有值那怎样解决呢,给个思路。。
也放handler里面啊果然是这样啊。。刚刚我也是这样做的。。但是总感觉handle是为了更新ui来用的有没有别的方法?handler是不是就是线程间通信用的?我刚学android不久,不太懂
别误解了,这里的handler只不过放在线程里面去做的.不用handler也可以.你需要有个同步机制等线程里面执行完了在System.out.println("onlick:" + line);
同步的话一般用wait-->notify