Android ライブラリ クラスがあります。このクラスは、Bluetooth 接続を管理するために使用されます。ソケット接続が作成されると、Bluetooth デバイスから受信した着信メッセージを Bluetooth ソケットで待機する新しいスレッドが開始されます。
I would call a function running on calling thread という新しいメッセージを受け取ったとき、それを実行しようとしましHandler
たが、handleMessage()
関数は常にセカンダリ スレッドで実行されました。
public class LibraryClass {
private ConnectedThread ct;
LibraryClass() {
// start blutooth connection
ct = new ConnectedThread();
ct.start();
}
private final Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
// this code is running on ConnectionThread but I need to handle
// message on primary thread
}
}
};
private class ConnectedThread extends Thread {
public void run() {
while (true) {
// Read from the InputStream
bytes = mmInStream.read(buffer);
mHandler.dispatchMessage(msg);
}
}
}
}
この問題を解決するのを手伝ってもらえますか?