Android_自定义Toast、子线程修改UI
来源:互联网 发布:wps for mac 编辑:程序博客网 时间:2024/06/06 20:02
一、自定义Toast
①、在layout文件夹下创建自定义的Toast布局文件
②、创建自定义Toast的java文件,继承Toast类
③、编写MyToast代码,如下:
扩:
④、调用
二、子线程修改UI
如下代码:
xml:
java:
运行报错:
Only the original thread that created a view hierarchy
can touch its views
1、在‘课下Android–>线程UI阻塞及优化’中提到:
2、why?
3、how?
既要保证效率又得保证安全,采取折中的操作——->handler消息队列机制
在UI线程中创建handler,当子线程要修改UI时,通过handler给UI线程发消息,说明我要修改UI,并把要修改的值一并发送给UI,UI中的handler接收到后可进行修改。
代码如下:
①、UI线程(主线程)创建handler
②、在子线程中通过handler发送消息
③、接收(在之前声明handler的代码中采用匿名对象的方式)
4、优化
在3.②中每次循环都会new一个Message对象,会产生大量垃圾
优化:
5、扩展—->进度条显示
xml:
java:
线程:
与上例相同
匿名内部类:
通过handler消息队列机制能够实现进度条,但是
线程:
进度条在子线程直接修改也是能够实现进度,原因在于Android在setProgress方法里已经实现了handler机制
阅读全文
0 0
- Android_自定义Toast、子线程修改UI
- Activity子线程修改UI
- 子线程修改UI异常
- 子线程中使用Toast或者更新UI(转)
- 子线程中使用Toast或者更新UI
- 子线程中使用Toast或者更新UI
- 子线程中使用Toast或者更新UI(转)
- 子线程oncreate可以修改UI
- 子线程中Toast
- android 子线程 Toast
- 子线程中Toast
- 非 UI 线程 调用 Toast
- 非UI线程中Toast
- 子线程中使用Toast
- 子线程中发Toast
- 在子线程中Toast
- 在子线程中Toast
- 子线程中,用Toast.makeText更新主线程UI 报错
- dvp和mipi接口
- solr删除全部索引数据
- 排序 基数排序
- FFMPEG —— 视频播放器 :(一)环境配置
- kernel or user oops信息定位步骤
- Android_自定义Toast、子线程修改UI
- centos系统下nodejs项目通过nginx做代理
- 1.3组件之间传值
- svn之bash: syntax error near unexpected token `(' 解决办法
- POJ 3321-Apple Tree(DFS序+树状数组)
- nodejs 注入 inject
- 新人自述
- 结构体的内存对齐
- 排序 计数排序