在service中回调时通知界面刷新了数据,就提示了如下异常:
Only the original thread that created a view hierarchy can touch its views.
翻译了一下:只有创建了视图层次结构的原始线程才能访问它的视图
意思就是只有在主UI线程才可以刷新UI。
哎,其实这个我们都知道的,但总是无意有意的忘了这个,太大意了。因此,记录于此。
解决这个办法就是把刷UI的操作都放在UI主线程就可以了。
解决方式:
1、使用Handler处理。
# MSG_UPDATE_UI mHandler.sendEmptyMessage(MSG_UPDATE_UI); private Handler myHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); // 刷新界面的操作放这里 } };
或者
myHandler.post(new Runnable() { @Override public void run() { // 刷新界面的操作放这里 } });
2、使用runOnUiThread()
runOnUiThread(new Runnable() { @Override public void run() { // 刷新界面的操作放这里 } });
以上就可以解决题中的异常了。
其实这种问题不该犯错的,哎。记录于此。
历史上的今天
暂无评论...
随机推荐
叶芝 : 当你老了
当你老了,头白了,睡意昏沉, 炉火旁打盹,请取下这部诗歌, 慢慢读,回想你过去眼神的柔和, 回想它们昔日浓重的阴影; 多少人爱你青春欢畅的时辰, 爱慕你的美丽,假意或真心, 只有一个人爱你那朝圣者的灵魂, 爱你衰老了的脸上痛苦的皱纹; 垂下头来,在红光闪耀的炉...
ViewPager2事件冲突问题
前言项目中用ViewPager2+Fragment替换ViewPager+Fragment做图片浏览功能,替换完后发现ViewPager2和Fragment中存在事件冲突,比如Fragment存在对图片进双指缩放等处理。因此,需要我们自己处理冲突事件。正文思路:重写mAnimViewP...
去除阴影动画效果和影藏滚动条
前言在使用ScrollView,ListView,ViewPage,GridView,RecyclerView等一些带有滚动的布局,当拉到尽头(顶部、底部)时继续拉就会出现的阴影动画效果。如果数据超过屏幕,用手滑动时就会显示滚动条,有时候需要有时候不需要。我的系统环境Android 4.2....
查看目录下文件和文件夹个数以及文件夹目录结构
前言有时候需要查看目录(存在多层嵌套)中有多少个文件和目录。cmd中使用命令查看目录和文件个数查看当前目录下文件个数ls -l |grep "^-" | wc -l查看当前目录下包含子目录的文件个数ls -lR |grep "^-" | wc -l查看当前目录下目录个数ls -...
[摘]已知圆心,半径,角度,求圆上的任一点的坐标
前言原理很简单,大家初中都学过的,但,由于Java中的sin和cos传入的值是弧度,我一开始一直用角度,导致得不出对应的值。摘抄于此,方便自己查阅。好记性不如烂笔头正文PS:本文摘抄,只是文本继续一定编辑和整理。圆心坐标 :(x0, y0)半径 : r角度: a设圆上任何一点坐标...
apache开启gzip压缩
我的买的是阿里云的服务器,或许不同服务商的路径不同,所以我的路径仅供参考。/alidata/server/httpd/conf/httpd.confA.开启模块:LoadModule deflate_module modules/mod_deflate.soLoadModule h...