使用HandlerThread获取Looper对象,后创建Handler(mHandlerThread.getLooper),此时的HandleMessage()在子线程中运行,为何此处可以更新UI?

public class MainActivity extends AppCompatActivity {

private TextView mTvText ;

private Handler mHandler;

// 使用这个新线程获取Looper对象

private HandlerThread mHandlerThread = new HandlerThread("my_handler_thread");

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mTvText = (TextView)findViewById(R.id.id_tv_text);

mHandlerThread.start();

mHandler = new Handler(mHandlerThread.getLooper()){

@Override

public void handleMessage(Message msg) {

// 此处显示在子线程中执行 handleMessage()

// 为何在此处(子线程中)更新UI组件不会抛出异常?

Log.v("LOG","CurThread: "+Thread.currentThread());

// CurThread:Thread[my_handler_thread,5,Main]

mTvText.setText("update this textView!");

}

};

mHandler.sendEmptyMessage(1);

}

}

android子线程为什么不能更新ui,Android非UI线程无法更新UI?相关推荐

  1. flutter中android子工程报错,Flutter混合Android

    1.新建一个Android工程 比如工程名MyApplication 2.创建Flutter Module 在cd到当前project下运行命令: E:\MyApplication flutter c ...

  2. linux非守护线程一直不释放,Linux pthread 和 java thread 的是 / 非守护线程的行为

    Linux pthread 和 java thread 的是 / 非守护线程的行为 pthread_xxx 的函数并没有直接提供设置一个 pthread 为守护线程的 API 而 pthread_at ...

  3. 守护线程与非守护线程的区别

    守护线程与非守护线程 最近在看多线程的Timer章节,发现运用到了守护线程,感觉Java的基础知识还是需要补充. Java分为两种线程:用户线程和守护线程 所谓守护线程是指在程序运行的时候在后台提供一 ...

  4. 多线程基础-守护线程与非守护线程

    守护线程与非守护线程 1.线程分类: 2.程序线程: 3.主线程与非守护线程 4.主线程与守护线程 5.主线程.守护线程.非守护线程 6. java虚拟机是如何退出的? 1.线程分类: 守护线程 非守 ...

  5. Java的守护线程和非守护线程

    一.守护线程 java分为两种线程:用户线程和守护线程 守护线程是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称职的守护者,并且这种线程并不属于程序中不可或缺的部分.因此 ...

  6. 【转】Android子线程真的不能更新UI么

    Android单线程模型是这样描述的: Android UI操作并不是线程安全的,并且这些操作必须在UI线程执行 如果在其它线程访问UI线程,Android提供了以下的方式: Activity.run ...

  7. Android子线程真的不能更新UI么

    Android单线程模型是这样描述的: Android UI操作并不是线程安全的,并且这些操作必须在UI线程执行 如果在其它线程访问UI线程,Android提供了以下的方式: Activity.run ...

  8. Android子线程更新UI的方法总结

    消息机制,对于Android开发者来说,应该是非常熟悉.对于处理有着大量交互的场景,采用消息机制,是再好不过了.有些特殊的场景,比如我们都知道,在Android开发中,子线程不能更新UI,而主线程又不 ...

  9. Android 子线程更新主线程UI视图

    消息机制,对于Android开发者来说,应该是非常熟悉.对于处理有着大量交互的场景,采用消息机制,是再好不过了.在Android开发中,子线程不能更新主线程UI,而主线程又不能进行耗时操作(例:网络请 ...

  10. android线程改变布局,震惊!Android子线程也能修改UI?(第二篇)

    某天早晨,群里有个小伙伴这样问了一个问题: XXX:为什么我的控件可以在子线程里面更新 我(不假思索):你是不是在onCreate里面开了一个子线程,然后更新了UI XXX:好像是这样.. 我:你试试 ...

最新文章

  1. python库迁移到没有网的电脑_关于换机器后python库的迁移-偷懒做法
  2. rfc mail content-type
  3. 版权归原作者的飞鸽传书(IPMSG)
  4. centos so查看_等保测评主机安全:CentOS密码修改周期与登录失败处理
  5. ie6识别important问题
  6. “iPhone 3 年内必死!”
  7. 来来来!docker-composeup很慢
  8. 类模板 templateclass T
  9. 使用sharding-jdbc实现水平分库+水平分表
  10. pyinstaller cx_oracle,使用pyinstaller打包使用cx_Oracle模块的程序出现The specified module could not be found的问题...
  11. AcWing 2. 01背包问题(01背包模板)
  12. Activity 生命周期及其栈管理方式
  13. 自动化测试项目实战训练【广州8月】
  14. 【微信小程序开发零基础入门】——微信小程序入门
  15. 微型计算机说明书,B52微机系统使用手册.doc
  16. Windows搭建kms服务器
  17. 删除IBM常见软件进程释放系统资源
  18. GCC编译器下C语言不定长参数宏##__VA_ARGS__和__VA_ARGS__的使用
  19. Ubuntu安装flash插件
  20. 程序员进阶攻略笔记01-10

热门文章

  1. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_09-freemarker基础-内建函数
  2. 阶段3 1.Mybatis_07.Mybatis的连接池及事务_5 mybatis中使用poolead配置连接的原理分析...
  3. 四种方法求Capacitated Facility Location Problem问题
  4. SQL Serve——版本
  5. [PaPaPa][需求说明书][V2.0]
  6. Objective-C的对象模型
  7. 2012/7/25Extjs学习随笔
  8. 一个在线排版小工具:中文、英文、数字、符号中间加个空格
  9. Redis学习笔记(四)——数据结构之List
  10. VMWare安装Ubuntu 16.04