1

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);
            }
        }
    }
}

この問題を解決するのを手伝ってもらえますか?

4

0 に答える 0