内部处理程序,它们适用于什么?

时间:2013-06-18 20:36:03

标签: android multithreading handler

我经常使用处理程序发布延迟线程,安排UI线程等等。

想象一下具有视图mV1,mV2和线程的活动A1:

class A1 extends Activity {

     LightView mV1;
     UltraComplexView mV2;
     Handler mHandler;

     private Runnable oneSecondTimerRunnable() {
          Log.d(TAG, "One second more");

          mHandler.postDelayed(oneSecondTimerRunnable, INTERVAL); // 1st way
          mV1.postDelayed(oneSecondTimerRunnable, INTERVAL);      // 2nd way
          mV2.postDelayed(oneSecondTimerRunnable, INTERVAL);      // 3rd way
     }
}

问题:

  • 每个视图都有自己的独立处理程序吗?它们有关系吗?一个处理程序可以重载而另一个处理程序是空闲的(例如:LightView<> ultraComplexView)

  • 然后使用视图的处理程序来postDelay与视图不真正相关的东西是否有意义只是因为您现在可以使用该处理程序而不是创建自己的处理业务的处理程序?

我问,因为Handler似乎是一个非常复杂的类,与系统线程,loopers等紧密相关..所以如果其中一些已经实例化,为什么不使用它们呢?

1 个答案:

答案 0 :(得分:0)

我经常在Activity中使用Handler来覆盖handleMessage,这比使用Runnables和我的观察c.a要好得多。 95%的人使用那令人讨厌的Runnables