Android在子线程中更新UI的方法汇总(共七种)

1、常规写法:new Handler()的handleMessage()和handler.sendMessage(msg)

    Handler handler = new Handler() {        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);        }    };
        new Thread(new Runnable() {            @Override            public void run() {                Message msg = Message.obtain();                msg.what = 1000;                msg.arg1 = 10;                handler.sendMessage(msg);            }        }).start();

2、handler的另一种用法:

    private Handler.Callback callback = new Handler.Callback() {        @Override        public boolean handleMessage(Message msg) {            return true;        }    };    Handler handler1 = new Handler(callback);
        new Thread(new Runnable() {            @Override            public void run() {                Message msg = Message.obtain();                msg.what = 1001;                msg.arg1 = 11;                handler1.sendMessage(msg);            }        }).start();

3、handler.post(runnable)

    Handler handler = new Handler() {        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);        }    };
        new Thread(new Runnable() {            @Override            public void run() {                handler.post(new Runnable() {                    @Override                    public void run() {                    }                });            }        }).start();

4、handler.postDelayed(runnable, milliseconds)

    Handler handler = new Handler() {        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);        }    };
        new Thread(new Runnable() {            @Override            public void run() {                handler.postDelayed(new Runnable() {                    @Override                    public void run() {                    }                }, 3000);            }        }).start();

5、activity.runOnUiThread(runnable)

        new Thread(new Runnable() {            @Override            public void run() {                runOnUiThread(new Runnable() {                    @Override                    public void run() {                    }                });            }        }).start();

6、view.post(runnable)

        new Thread(new Runnable() {            @Override            public void run() {                button.post(new Runnable() {                    @Override                    public void run() {                    }                });            }        }).start();

7、view.postDelayed(runnable, milliseconds)

        new Thread(new Runnable() {            @Override            public void run() {                button.postDelayed(new Runnable() {                    @Override                    public void run() {                    }                }, 3000);            }        }).start();

更多相关文章

  1. android学习笔记----多线程断点续传下载原理设计
  2. Android线程间通信的Message机制
  3. Android的线程使用来更新UI----View的几种更新方法(Thread、Hand
  4. Android之子线程更新UI
  5. Android 线程操作之线程池
  6. Android -- ViewRoot,关于子线程刷新UI
  7. Android 中如何关闭线程

随机推荐

  1. 想在android中使用node.js和socket.io发
  2. 在Android主屏幕上删除启动器图标(就像Goo
  3. Android Studio 问题总结
  4. Android常用控件学习(1)
  5. Android 开发,从入门-初级-中级-高级 该怎
  6. android studio Dagger2的使用(环境搭建和
  7. 求高手推荐几本ANDROID开发初学者书籍
  8. Android Filetransfer错误码3
  9. Android——Tomcat版本更新下载+头像照片
  10. Android两种方式监听短信内容---Broadcas