Android:所有可运行任务使用一个处理程序?

17

我在Activity中能否使用一个Handler处理所有的Runnable,还是应该为每个Runnable创建多个Handler实例?

2个回答

12
您可以仅使用一个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....
        }
    }  
   };

8
实际上,我正在使用postDelay(runnableName, 100); 所以我总是明确指出哪个可运行对象将在指定的毫秒后执行。所以我想只使用一个处理程序就可以了。谢谢。 - c0dehunter
如果我们使用handler.postDelayed(runnableName, 100);语句多次,每次都使用不同的runnable,这样可以吗? - isJulian00

0

我认为,每个线程应该有一个处理程序(而不是每个可运行),除非您不需要对不同类型的可运行物完全不同的行为。


如果我们使用handler.postDelayed(runnableName, 100);语句多次,每次都使用不同的runnable,这样可以吗? - isJulian00
1
@Julian 我觉得这是一件容易测试的事情,不是吗? - Tamim Attafi
2
@TamimAttafi 是的,但我不确定这样做是否正确。 - isJulian00

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接