Android新线程中更新主线程UI中的View方法汇总
来源:互联网 发布:mac版qq怎么发送文件 编辑:程序博客网 时间:2024/05/22 15:27
Android中的View都不是线程安全的,所以如果在某一个新线程中直接更新主线程中的UI控件时就会报如下错误:
android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
错误的意思是只有创建View的原始线程才能更新View。
为了解决在另一个线程中更新UI控件的问题,我们可以使用如下几种解决方案:
1. 自己写Handler解决,参见《Android中Handler的使用》。
2. 使用Activity#runOnUiThread(Runnable)方法,该方法接收一个Runnable对象作为参数,我们需要在该Runnalble的run方法中更新View,该方法内部也使用了Handler。
3. 使用View中的postXXX等方法:
View#post(Runnable)
View#postDelayed(Runnable, long)
View#postDelayed(Runnable action, long delayMillis)
这几个方法也是接收Runnable对象作为参数,也是在该Runnable的run方法中更新View,这几个方法内部也是用Handler实现的。
3 0
- Android新线程中更新主线程UI中的View方法汇总
- Android新线程中更新主线程UI中的View方法汇总
- Android子线程更新UI主线程方法之Handler
- Android子线程更新UI主线程方法之Handler
- 【Android】几种子线程更新UI主线程的方法
- c#中后台线程更新主线程ui的方法
- Android中通过其他线程更新主线程UI
- Android中通过其他线程更新主线程UI
- Android 在子线程中更新主线程UI
- Android显示系统之View与SurfaceView更新屏幕的区别.对于View.则是在UI主线程中更新画面.SurfaceView更新屏幕,是在非UI线程(主线程)中实现SurfaceHolde
- 在分线程更新主线程的Ui界面方法
- 线程、更新主线程UI的其它方法
- Android中在主线程与在子线程中更新UI的探索
- Android Activity sleep 自线程更新主线程UI
- android线程间通信和主线程更新ui
- android 橘子汁 在子线程中更新主线程UI 困扰
- Android中为什么主线程更新UI,子线程执行耗时操作?
- Android UI线程(主线程)
- 第二篇T语言实例开发(版本5.3),福彩3D摇号器
- POJ 2524 Ubiquitous Religions 详细题解(并查集)
- Cocos2d-x学习笔记(一)——开发环境搭建(win7)
- 开发中遇到的一个关于 SQL 语句执行的问题
- 关于dede:list 标签 titlelen 长度显示不全解决方案
- Android新线程中更新主线程UI中的View方法汇总
- Android 按钮常用点击事件大总结
- http请求中的referer
- 用vnc实现windows远程连接linux桌面
- EMV读卡器终端数据库的设计
- 4. 使用已映射语句
- Handler,Message,Looper的关系
- python多线程编程(8):线程的合并和后台线程
- 使用Jmeter登录WordPress的问题(Cookie管理)