Android: один обработчик для всех runnables? - PullRequest
15 голосов
/ 14 февраля 2012

Могу ли я использовать один обработчик в своей Деятельности для всех исполняемых объектов или у меня должно быть несколько экземпляров Обработчика, каждый для одного запускаемого объекта?

Ответы [ 2 ]

12 голосов
/ 14 февраля 2012

Вы можете использовать только один handler, а чтобы указать, откуда вы приехали, используйте другое сообщение.

handler.sendEmptyMessage(messagevalue);  //use this to send message from different place

Теперь обработайте сообщение

    private Handler handler=new Handler(){

    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        //specify msg value
        if(msg.what==10){
            //do this
        }else if(msg.what==20){
            // do this
        }else{
            //so on....
        }
    }  
   };
0 голосов
/ 14 февраля 2012

Я бы сказал, что у вас должен быть один обработчик для каждого потока (не для каждого запускаемого), если вам не требуется совершенно разное поведение для различных типов запускаемых.

...