我对 Android 还很陌生,还没有得到 Android 线程的想法。
在这里,我有BtConnection
通过蓝牙与 Lego NXT 通信的课程。我想webView
根据来自 NXT 的消息更改我的。我想在webView
收到任何消息后立即更改。像这样
class BtConnection implements Runnable {
@Override
public void run() {
NXTConnector conn = new NXTConnector();
dos = new DataOutputStream(conn.getOutputStream());
dis = new DataInputStream(conn.getInputStream());
while(true){
int nextPageIndex = dis.readInt();
webView.loadUrl(indexToUrl(nextPageIndex));
}
}
}
接着...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("file:///android_asset/html/index.html");
new Thread(new BtConnection()).start();
}
但这是错误的,因为new Thread(new BtConnection())
无法触摸 UI。我应该怎么办?