在android开发过程中,我们经常有通过子线程来更新界面UI的需求,而android是不允许子线程更新界面的,只能通过主线程来更新界面UI,而且,android开发中,由于要保证主线程的通畅,一般主线程只负责处理界面更新,事件处理,窗体显示的回调等重要且不耗时的操作,而像连接网络,io操作等,一般让子进程负责。

   所以,android提供了一种消息机制来实现子线程更新UI的需求,android提供Handler类,用于子线程和主进程交互。在主进程中,声明实例化一个Handler,并重写它的handleMessage方法。

   

private Handler handler = new Handler(){        @Override        public void handleMessage(Message msg) {            int i = (Integer) msg.obj;            tView.setText("hello world "+i);            super.handleMessage(msg);        }                                                              };



在子线程中,调用的Handler的sendMessage方法,android主线程就会调用HandleMessage方法来处理。


Thread thread = new Thread(){            @Override            public void run() {                for (int i = 0; i < 1000; i++) {                    try {                        sleep(500);                    } catch (Exception e) {                        // TODO: handle exception                    }                    Message msg = new Message();                    msg.obj = i;                    handler.sendMessage(msg);                }                super.run();            }

Handler

更多相关文章

  1. Android中AsyncTask(异步任务)和Handler(线程消息机制)的详解
  2. Andriod界面设计适配和Android Studio中的资源
  3. Android中的线程处理
  4. Android内核与主线linux内核的比较(Android对Linux内核的改动你知
  5. 移动应用界面设计的尺寸设置及规范
  6. Android应用程序线程消息循环模型分析(1)

随机推荐

  1. Android之背景图片设置为重复而不是默认
  2. 收藏的Android非常好用的组件或者框架。
  3. android调节屏幕亮度
  4. android 屏幕上面画线
  5. Android开机广播和关机广播
  6. android 全屏幕显示以及竖屏显示
  7. Android(安卓)GridView 通过seletor 设置
  8. Android(安卓)和 SQLite 基本数据类型
  9. android-logging-log4j - Logging with L
  10. Android(安卓)Studio下对资源进行分包