Android View.post(Runnable )

Runnable 并不一定是新开一个线程,比如下面的调用方法就是运行在UI主线程中的:


Handler mHandler=new Handler(); 

      mHandler.post(new Runnable(){ 
        @Override public void run() 

        

// TODO Auto-generated method stub 

         } 

      });


View.post(Runnable)方法。在post(Runnable action)方法里,View获得当前线程(即UI线程)的Handler,然后将

action对象post到Handler里。在Handler里,它将传递过来的action对象包装成一个Message(Message的callback为

action),然后将其投入UI线程的消息循环中。在Handler再次处理该Message时,有一条分支(未解释的那条)就是

为它所设,直接调用runnable的run方法。而此时,已经路由到UI线程里,因此,我们可以毫无顾虑的来更新UI。

这种情况下,由于不是在新的线程中使用,所以千万别做复杂的计算逻辑。

你可能感兴趣的:(Android View.post(Runnable ))