runOnUiThread handler区别

this.runOnUiThread(new Runnable() {  
        @Override  
        public void run() {  
            try {  
                Thread.sleep(1000 * 5);  
            } catch (InterruptedException e) {  
                e.printStackTrace();  
            }  
                 InputMethodUtils.show(context, editText);    
                 System.out.println("xx");  
            }  
        });  
        System.out.println("xxxxxx");  

在onCreate中执行改方法,。执行结果如下

xx

xxxxxxx

想想也应该明白, 系统只有一个(唯一)独立的Main线程--UIThread, 所有跟界面相关的都是同步执行


    new Handler().post(new Runnable() {  
   @Override  
   public void run() {  
    try {  
     Thread.sleep(1000 * 5);  
    } catch (InterruptedException e) {  
     e.printStackTrace();  
    }  
    InputMethodUtils.show(context, editText);  
    System.out.println("xx");  
   }  
  });  
  System.out.println("xxxxxx");  
  

在onCreate中执行改方法,。执行结果如下

xxxxxxx

xx

先结束了onCreate 然后handler中的线程仍然继续执行

你可能感兴趣的:(runOnUiThread handler区别)