在OnCreate()
if (!bAdapter.isEnabled()) {
Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,300);
startActivity(discoverableIntent);
getPairedDevices();
getPairedDevices()
中的
private void getPairedDevices()
{
// TODO Auto-generated method stub
myThread t=new myThread();
t.start();
}
private class myThread extends Thread{
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
try {
sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
setTextView("hello");
}
}
}
}
为什么应用程序在打开蓝牙后会出错?
谢谢!
答案 0 :(得分:1)
这是一个问题
setTextView("hello");
我认为可以安全地假设此行更新了您尝试从后台UI
执行的Thread
,但这不可能发生。您应该使用runOnUiThread()
从背景UI
更新Thread
。
}finally{
runOnUiThread(new Runnable()
{
@Override
public void run()
{
setTextView("hello");
}
});