2013-03-17 71 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