安卓编程 线程 更改textview 的有关问题
安卓编程 线程 更改textview 的问题
程序运行后,线程只能更改一次 textview4的值。 如果再次更改textview4.的值 就程序崩溃。请问高手,这个怎么回事啊
handler = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
String message = (String)msg.obj;
Log.d("asfasfd",String.valueOf(msg.what));
textView4.setText(message);
super.handleMessage(msg);
}
};
class inputlisner extends Thread{
@Override
public void run() {
// TODO Auto-generated method stub
Message message = Message.obtain();
int bytes = 0;
while(true)
{
try{
inputStream = bluetoothSocket.getInputStream();
bytes = inputStream.read();
message.obj = String.valueOf(bytes-48);
}catch (Exception e) {
// TODO: handle exception
}
handler.sendMessage(message);
}
}
}
------解决方案--------------------
我看是消息队列的问题。
你把 Message message = Message.obtain(); 这个代码 放到while循环里面试试。
程序运行后,线程只能更改一次 textview4的值。 如果再次更改textview4.的值 就程序崩溃。请问高手,这个怎么回事啊
handler = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
String message = (String)msg.obj;
Log.d("asfasfd",String.valueOf(msg.what));
textView4.setText(message);
super.handleMessage(msg);
}
};
class inputlisner extends Thread{
@Override
public void run() {
// TODO Auto-generated method stub
Message message = Message.obtain();
int bytes = 0;
while(true)
{
try{
inputStream = bluetoothSocket.getInputStream();
bytes = inputStream.read();
message.obj = String.valueOf(bytes-48);
}catch (Exception e) {
// TODO: handle exception
}
handler.sendMessage(message);
}
}
}
------解决方案--------------------
我看是消息队列的问题。
你把 Message message = Message.obtain(); 这个代码 放到while循环里面试试。