2013-03-17 3 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”); 
    } 
}; 

Я думаю, что я понимаю цель, -они просто хотите переопределить метод класса Handler без определения подкласса это, но я не уверен, что понимаю синтаксис. На самом деле, я никогда не сталкивался с подобным синтаксисом в Java раньше. Может ли кто-нибудь указать на java-механизм, который здесь задействован? Вначале я думал, что это анонимные внутренние классы, но статическая часть обработчика UIupdater заставляет меня сомневаться в этом ...

Спасибо за помощь (извините за вопрос о нубе)!

ответ

1

Вы правы, это anonymousinner class, экземпляр которого быть назначен static fieldUIupdater.

+0

Вы правы! Я немного смутился о части обработчика UIupdater, потому что, на мой взгляд, мне казалось, что мне нужно подклассифицировать этот класс и переопределить метод handleMessage(). –

Смежные вопросы