new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
if (sendPostRequest(map,url,"utf-8")) {
handler.sendEmptyMessage(SEND_SUCCESS);//通知主线程数据发送成功
Message message=handler.obtainMessage();
message.arg1=8788765;
message.sendToTarget();;
}else {
//将数据发送给服务器失败
handler.sendEmptyMessage(SEND_FAIL);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
Handler handler=new Handler(){
public void handleMessage(Message msg) {
super.handleMessage(msg);
System.out.println(msg.arg1);
switch (msg.what) {
case SendDateToLogin.SEND_SUCCESS:
Toast.makeText(LoginActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
System.out.print("iisssisisis"+i);
is=true;
System.out.print("iisssisisis"+is);
break;
case SendDateToLogin.SEND_FAIL:
Toast.makeText(LoginActivity.this, "登录失败", Toast.LENGTH_SHORT).show();
i=0;
is=false;
System.out.print("iisssisisis"+is);
break;
default:
break;
}
if(is==false){
Toast.makeText(getApplicationContext(), "用户与密码不匹配,请重新输入..", Toast.LENGTH_SHORT).show();
}
else {
Intent intent =new Intent(LoginActivity.this,MainActivity.class);
intent.putExtra("username",name);
intent.putExtra("pwd",pwd);
startActivity(intent);
}
};
};
重写的handlemessage方法里 可以获取thread中的msg.arg1等值,但是在该handleMessage方法中,不能将得到的值赋值给重写handler所在MainActivity的全局变量 ,该变量不会因为你的赋值而改变
可以考虑使用在重写的handlemeage方法中定义局部变量并赋值得到msg.arg1等值