Android - 使用处理程序?

ary*_*axt 7 memory android memory-management handler android-activity

在同一个Activity中使用多个Handler是否有任何问题.

我注意到在Android官方网站上提供的所有示例中,他们使用单个处理程序并根据"what"的值检测不同的操作,这是因为内存管理和Handler使用的大量内存?或者我应该称之为"坏代码"并以干净的方式执行(多个处理程序,每个负责特定任务)

Handler handler = new Handler()
{
    @Override
    public void handleMessage(Message msg) {
      if (msg.what == 0){
         // do something
      }
      else if (msg.what == 1){
         // do something else
      }
    }
}
Run Code Online (Sandbox Code Playgroud)

要么

Handler taskHandlerA = new Handler()
{
    @Override
    public void handleMessage(Message msg) {
         // do something
    }
}

Handler taskHandlerB = new Handler()
{
    @Override
    public void handleMessage(Message msg) {
         // do something else
    }
}
Run Code Online (Sandbox Code Playgroud)

hac*_*bod 9

没有这样的限制(Handler只是一个消息接收者),但如果你想做这样的事情,更常见的方法是让一个Handler你发布Runnable对象.


nic*_*ild 5

这里有一些关于Loopers和Handlers的好读物.

Handler被创建,它会自动与它的注册ThreadLooper.这让我觉得你不需要多个Handler单独的线程.一Activity,具体而言,一个使用多种Thread的,可以使用多种Handler的,但.