Android: один обработчик для всех runnables?

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

Ответ 1

Вы можете использовать только один 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....
        }
    }  
   };

Ответ 2

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