android四种更新UI进程

来源:互联网 发布:苏联解体启示知乎 编辑:程序博客网 时间:2024/05/23 14:00

子线程 里面 更新报错的原因:
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");        } });
0 0