android初学者! 请教handleMessage为什么没有执行! 时间很紧急 70
我要点击这个菜单按钮,将线程里得到的字符串传递给主线程UI但是发现handlemessgae并没有执行。大致代码如下:这是按钮的publicbooleanonOption...
我要点击这个菜单按钮,将线程里得到的字符串传递给主线程UI 但是发现handlemessgae并没有执行。 大致代码如下:
这是按钮的
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == UPDATE) {
// 点击了更新按钮
System.out.println("====ss");
Runnableupdate ru=new Runnableupdate(handler);
Thread tddd=new Thread(ru);
tddd.start();
这是接口Runnableupdate :
class Runnableupdate implements Runnable{
private Handler handler;
public Runnableupdate(Handler handler) {
super();
this.handler = handler;
}
public void run() {
// TODO Auto-generated method stub
Log.d("test", "=====");
HttpUrlHelper httphelpp = new HttpUrlHelper();
String axml;
// axml =
// httphelp.downloadxml("http://192.168.1.100:8080/manager/sa.xml");
axml = httphelpp
.downloadtxt("http://192.168.1.105:8080/manager/sb.xml");
System.out.println(axml);
Message msg = new Message();
Bundle b = new Bundle();
Log.d("test", "i am in thread.");
msg = handler.obtainMessage();
b.putString("hi", axml);
msg.setData(b);
}
}
这是handler里面handlemessage的,handler的构造方法已经写好:
public void handleMessage(Message msg) {
super.handleMessage(msg);
Bundle b = msg.getData();
String xml = b.getString("hi");
System.out.println( xml);
System.out.println("handler--->" + Thread.currentThread().getId());
System.out.println("handleMessage");
};
1 分钟前
sorry 我复制代码的时候刚把这行去掉了 可是就算加上也不行的 展开
这是按钮的
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == UPDATE) {
// 点击了更新按钮
System.out.println("====ss");
Runnableupdate ru=new Runnableupdate(handler);
Thread tddd=new Thread(ru);
tddd.start();
这是接口Runnableupdate :
class Runnableupdate implements Runnable{
private Handler handler;
public Runnableupdate(Handler handler) {
super();
this.handler = handler;
}
public void run() {
// TODO Auto-generated method stub
Log.d("test", "=====");
HttpUrlHelper httphelpp = new HttpUrlHelper();
String axml;
// axml =
// httphelp.downloadxml("http://192.168.1.100:8080/manager/sa.xml");
axml = httphelpp
.downloadtxt("http://192.168.1.105:8080/manager/sb.xml");
System.out.println(axml);
Message msg = new Message();
Bundle b = new Bundle();
Log.d("test", "i am in thread.");
msg = handler.obtainMessage();
b.putString("hi", axml);
msg.setData(b);
}
}
这是handler里面handlemessage的,handler的构造方法已经写好:
public void handleMessage(Message msg) {
super.handleMessage(msg);
Bundle b = msg.getData();
String xml = b.getString("hi");
System.out.println( xml);
System.out.println("handler--->" + Thread.currentThread().getId());
System.out.println("handleMessage");
};
1 分钟前
sorry 我复制代码的时候刚把这行去掉了 可是就算加上也不行的 展开
2个回答
展开全部
你的handler没有发送message吧。。。没有发送怎么能有响应呢??
至少要有以下这个代码呀
handler.sendMessage(m);//发出Message对象
或者使用handler.sendEmptyMessage(); 但是根据你的代码是需要传值的,所以应该用第一种方式
至少要有以下这个代码呀
handler.sendMessage(m);//发出Message对象
或者使用handler.sendEmptyMessage(); 但是根据你的代码是需要传值的,所以应该用第一种方式
追问
sorry 我复制代码的时候刚把这行去掉了 可是就算加上也不行啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-04-27 · 知道合伙人软件行家
关注
展开全部
你的message都没有发送出去,怎么可能会接收到呢
调用一下Handler的sendMessage吧
调用一下Handler的sendMessage吧
追问
sorry 我复制代码的时候刚把这行去掉了 可是就算加上也不行啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询