代码如下:
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.cityname);
mhandler = new Handler(){
public void handMessage(Message msg){
if(msg.what == 1){
TextView te =(TextView) findViewById(R.id.cityname1);
te.setText("123123");
}
}
};
button = (Button) findViewById(R.id.cityname1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Runnable r = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
Message message = new Message();
message.what = 1;
mhandler.sendMessage(message);
}
};
Thread th = new Thread(r);
th.start();
if(th == null){
Log.v("线程正在启动", "线程正在启动");
th.start();
}else{
Log.v("线程没启动", "线程没启动");
}
}
});
------解决方案--------------------
Thread th = new Thread(r);你这th不可能为空。
下面的判断是多余的。
你th.start() 现在就执行了,只是你的线程做了发送一个handler 消息而已。
------解决方案--------------------
Thread th = new Thread(r);
th.start();
if(th == null){
Log.v("线程正在启动", "线程正在启动");
th.start();
}else{
Log.v("线程没启动", "线程没启动");
}
你都给th,new了个线程 th当然不等于null啦
------解决方案--------------------
Thread th = new Thread(r);
th.start();
//th!=null,下面的判断就有问题。顶多给上面两行代码加个try catch
------解决方案--------------------
@Override
public void handMessage(Message msg)
此方法需要重写