2013-03-17 38 views
0

最近,我发现这个代码从一本书上的Android服务:Android的处理程序定义语法

static Handler UIupdater = new Handler() { 
    @Override 
    public void handleMessage(Message msg) { 
     byte[] buffer = (byte[]) msg.obj; 
     //---convert the entire byte array to string--- 
     String strReceived = new String(buffer); 
     //---display the text received on the TextView--- 
     txtView1.setText(strReceived); 
     Log.d(“Threading”, “running”); 
    } 
}; 

我想我明白的目的, - 他们只是想重写处理程序类的方法,无需定义的一个子类它,但我不确定我是否理解语法。实际上,我从来没有在java中遇到这种类型的语法。有人可以指出这里涉及的java机制吗?在一开始,我认为这是匿名内部类,但静态Handler UIupdater部分让我怀疑...

感谢您的帮助(对于noob问题抱歉)!

回答

1

你是对的,那是一个anonymousinner class,它的实例被分配给static fieldUIupdater

+0

你是对的!我对Handler UIupdater部分有点困惑,因为在我看来,我想我必须继承这个类并覆盖handleMessage()方法。 – 2013-03-17 17:54:15