1

あるスレッドから別のスレッドにシグナルを送信するために、純粋な Java のみを使用して単純な Android Handler クラスを作成する方法は興味深いですか?

ソースコードを見ました: http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.1_r2/android/os/Handler.java

しかし、たとえば、int値をあるスレッドから別のスレッドに送信できるクラス(Handlerクラス)を作成するにはどうすればよいですか(共有データを使用しないで(Android Handlerのように?))?

4

2 に答える 2

6

メッセージを受信するハンドラーと同じメソッドにスレッドがある場合、次のようにすることができます。

final Handler handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
             // do something
    }
}

final Thread th = new Thread() {
    public void run() {
            // do something than send an integer - x in our case
            int x = 0;         
            final Message msg = Message.obtain(handler, x, null);
            handler.dispatchMessage(msg);
        }
    };
th.start();

ハンドラーがスレッドから直接アクセスできない場合は、Thread を拡張するクラスを作成し、ハンドラーをクラスのコンストラクターに渡します。

于 2012-04-13T18:18:08.520 に答える