私は Android にかなり慣れていないので、Android スレッドのアイデアをまだ理解していません。
ここにBtConnection
、Bluetooth 経由で 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 に触れることができないからです。私は何をすべきか?