1. 程式人生 > >android四種更新UI程序

android四種更新UI程序

子執行緒 裡面 更新報錯的原因:
android原始碼裡面有一個函式:
checkThread();準們用於檢測;

checkThread(){
        ifmThread != Thread.currentYThread()){
            throw new CalledFromWrongThreadException(
        "Only the original thread that create a view hierarchy can touch its view"
)
        }

在子執行緒中,更新主執行緒的UI都是會報錯的,所以下面介紹4中方法,(基本原理差不多。最常用的還是handler,下面第一種,)
1,最常用的一種就是:

 private Handler handler = new Handler(){
                       poublic void handlerMessage(android.os.Message msg){ 
                                                      textView.settext("xxxx");
                       };
               };

然後:
Message message = new Message();
//或者 Message message
= handler.obainMessage(); message.obj = object; handler.sendMessage(message);//或者message.sendToTarget();

第 2 種:


 handler.post(new Runnable(){
                   textView.setText("xxx");
                 });   

如:
----------


 new Thread(){
         public void run(){
             handler.post(new Runnable(){
textView.setText("xxx"); }); } }.start();

第 3 種:

runOnUiThread(new Runnable(){
       public void run(){
              textView.setText("xxxx");
             }
         });

第 4中:通過view自身來處理

 textView.post(new Runnable(){
        public void run(){
              textView.setText("xxxx");
        }
 });