如何编写简单的自定义Android Handler类?

ASD*_*ASD 1 java android

对我来说有趣的是如何使用纯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?))?

aze*_*iti 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();
Run Code Online (Sandbox Code Playgroud)

如果无法直接从线程访问您的处理程序,则创建一个扩展Thread的类并将处理程序传递给类的构造函数.