2个按钮,点击开始按钮用handler创建一个线程,然后不断的回调,在消息处理中设置文本框的内容;
在结束按钮清空文本框的内容,但是快速不断按那个结束按钮的时候,界面中的文本内容并不会被清空,这是为什么。
代码如下:
class StartSocketListener implements OnClickListener
{
public void onClick(View v)
{
if(Flag)
{
Flag = false;
startbutton.setText("开始");;
Handler.post(updateThread);
}
else
{
Flag = true;
Handler.removeCallbacks(updateThread);
ver.setText("");
startbutton.setText("结束"); }
}
}Handler Handler = new Handler(){
@Override
public void handleMessage(Message msg)
{
ver.setText("asd"); Handler.post(updateThread);
}
};
Runnable updateThread = new Runnable(){
public void run()
{
try
{
Message msg = Handler.obtainMessage(); Handler.sendMessage(msg);
}
catch (Exception e)
{
e.printStackTrace();
}
}
};
在结束按钮清空文本框的内容,但是快速不断按那个结束按钮的时候,界面中的文本内容并不会被清空,这是为什么。
代码如下:
class StartSocketListener implements OnClickListener
{
public void onClick(View v)
{
if(Flag)
{
Flag = false;
startbutton.setText("开始");;
Handler.post(updateThread);
}
else
{
Flag = true;
Handler.removeCallbacks(updateThread);
ver.setText("");
startbutton.setText("结束"); }
}
}Handler Handler = new Handler(){
@Override
public void handleMessage(Message msg)
{
ver.setText("asd"); Handler.post(updateThread);
}
};
Runnable updateThread = new Runnable(){
public void run()
{
try
{
Message msg = Handler.obtainMessage(); Handler.sendMessage(msg);
}
catch (Exception e)
{
e.printStackTrace();
}
}
};
Handler.post(updateThread)->updateThread->Handler.sendMessage(msg)->Handler.post(updateThread).............
所以,你点击button后,并没有结束