Only the original thread that created

Android  2020年4月30日 pm12:09发布5年前 (2020)更新 城堡大人
103 0 0

在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() {
                // 刷新界面的操作放这里
            }
        });

以上就可以解决题中的异常了。

其实这种问题不该犯错的,哎。记录于此。

 历史上的今天

  1. 2024: Android的编译(0条评论)
  2. 2023: AccessibilityService使用(2条评论)
  3. 2023: Android 内存优化等记录(0条评论)
  4. 2023: Java反射记录(0条评论)
版权声明 1、 本站名称: 笔友城堡
2、 本站网址: https://www.biumall.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

暂无评论

暂无评论...

随机推荐

叶芝 : 当你老了

当你老了,头白了,睡意昏沉, 炉火旁打盹,请取下这部诗歌, 慢慢读,回想你过去眼神的柔和, 回想它们昔日浓重的阴影; 多少人爱你青春欢畅的时辰, 爱慕你的美丽,假意或真心, 只有一个人爱你那朝圣者的灵魂, 爱你衰老了的脸上痛苦的皱纹; 垂下头来,在红光闪耀的炉...

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...