为了解决在Android非UI线程更新UI这个问题,Android提供了一些方法,从其他线程访问UI线程。

  1. Activity.runOnUiThread(Runnable)
  2. View.post(Runnable)
  3. View.postDelayed(Runnable, long)
  4. Looper的方式。
  5. 使用Handler的方式。
// 1. 使用runOnUiThread的方式runOnUiThread(new Runnable() {    @Override    public void run() {        Toast.makeText(MainActivity.this, "sdf", Toast.LENGTH_SHORT).show();    }});// 2. 使用post的方式btn.post(new Runnable() {    @Override    public void run() {        Toast.makeText(MainActivity.this, "sdf", Toast.LENGTH_SHORT).show();    }});// 3. 使用postDelayed的方式btn.postDelayed(new Runnable() {    @Override    public void run() {        Toast.makeText(MainActivity.this, "sdf", Toast.LENGTH_SHORT).show();    }}, 1000);// 4. 使用Looper的方式Looper.prepare();Toast.makeText(MainActivity.this, "sdf", Toast.LENGTH_SHORT).show();Looper.loop();// 5. 使用Handler的方式private Handler handler = new Handler() {    @Override    public void handleMessage(Message msg) {        switch (msg.what) {            case 1:                Toast.makeText(MainActivity.this, "sdf", Toast.LENGTH_SHORT).show();                break;        }    }};// 发送消息handler.sendEmptyMessage(1);或者Handler handler = new Handler(Looper.getMainLooper());handler.post(new Runnable() {    @Override    public void run() {        Toast.makeText(MainActivity.this, "sdf", Toast.LENGTH_SHORT).show();    }});

更多相关文章

  1. Android的线程使用来更新UI----Thread、Handler、Looper、TimerT
  2. android UI进阶之弹窗的使用(2)--实现通讯录的弹窗效果
  3. Android(安卓)UI学习 - Tab的学习和使用
  4. Android中Context详解
  5. 待续
  6. 使用maven构建基于spring、springMVC的简单Android登陆——Andro
  7. 箭头函数的基础使用
  8. NPM 和webpack 的基础使用
  9. Python list sort方法的具体使用

随机推荐

  1. Android(安卓)Camera 模块分析(一)
  2. android sqlite 自增数据类型
  3. Android中的11种传感器
  4. 电话文本android(3)_拨打电话操作
  5. 独辟蹊径系列 带着大家玩Android
  6. APK安装过程详解
  7. android讲义2之计时器组件Chronometer
  8. Android(安卓)studio xml 无提示解决办法
  9. Android设置Activity全屏的三种方式
  10. Android Studio编译后报错 java.exe'' fi