Android-обработчик и функции делегата - PullRequest
1 голос
/ 08 января 2012

У меня есть 2 разных класса в 2 отдельных файлах, теперь я хочу, чтобы класс B уведомил класс A о выполнении действия. Исходя из моего понимания Android, обработчик создается в главном потоке и выполняет обработку после получения сообщения. Однако, чтобы уведомить класс A, класс B нуждается в том обработчике, который создан в классе A, в данном случае его mHandler. Также действие класса B запускается из действия класса A через New Intent и StartActivity. Но если я хочу, чтобы обработчик из A был передан B, как я могу это сделать?

Вместо того, чтобы передавать обработчик для создания этой функции делегата, есть ли более простой способ, такой как уведомление, будет ли это проще? Если это как Как я могу отправить уведомление из B в A и в A, выполнить обработку уведомления

В классе А

  private Handler mHandler = new Handler(){
    @Override
    public void handleMessage(Message msg) { //message sent from Class B

        String event = msg.what;
        switch(event){
        /.......

        }  //switch
        super.handleMessage(msg);
    }  //handle
};

В классе B

        public void onClick(View v) {
                    m.what = MESSAGE;
                    mHandler.sendMessage(m); //mHandler from Class A
                }
...