0
  • 查4.4代码,子线程更新的错误log和新版不同,处理方式也不同。


    android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.

                   at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:6357)

                   at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:874)


    当更新,触发requestLayout,然后检查了当前线程,如果不是主线程,就奔溃了~~

    1139423796017500160  评论     打赏       断点-含光君
    • 断点-含光君  回复 @断点-含光君
      崩不崩溃,看官方代码,官方的AOSP如果不崩溃,你跑官方模拟器上面,那就不崩溃,但是手机厂商的处理方式可能不同。小米可能让你崩溃,魅族可能不会,因为厂商拿到代码之后是可以随意更新的。难不保他们为了照顾这种憨憨操作,然后直接程序崩溃也不是不可能。不能依靠网上一些文章把你带偏,要自己实践和看错误日志翻Google代码才知道一些情况。
      断点-含光君 2022-03-01 09:30   回复 1139423796017500160
    • 什本先生 2022-03-01 09:46   回复 1439224908176531457
  • 会不会崩溃得看情况 你可以看看这篇博客《Android:为什么子线程不能更新UI》:https://www.jianshu.com/p/58c999d3ada7

    1204736502274318336  评论     打赏       A lonely cat
    • 崩不崩溃,看代码。按照这个源码堆栈提示。看看框架代码怎么处理。


      代码位置:https://cs.android.com/android/platform/superproject/+/master:frameworks/base/core/java/android/view/ViewRootImpl.java;drc=master;l=10232?q=ViewRootImpl


      log对上,Google也没说那个版本,我估计应该比较高版本。


      更ui的时候,对比了下更新的线程的looper是否和主线程对的上,如果不是,就抛出上面log的异常信息。提示开发者这样做是不安全的。


      你可以换一个低版本模拟器试试,比如4.4.

      1139423796017500160  评论     打赏       断点-含光君
      • 在oncreate方法里的代码

        new Thread(new Runnable() {
            @SuppressLint("SetTextI18n")
            @Override
            public void run() {
                try {
                    Thread.sleep(2000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
        
                }
                mButton.setText("123456");
        
            }
        }).start();
        


        1439224908176531457  评论     打赏       什本先生
        相关问题
        吕氏春秋 · java / 多线程并发
        2020-03-19 03:46 859 4
        2020-04-10 18:02 484 5
        linver · 线程 / java
        2021-03-21 18:51 943 2
        热爱android · android线程切换
        2022-11-22 13:46 59 5
        你好,孙耀耀 · java / 多线程
        2023-01-08 15:21 52 10
        幻影~ · 提问
        2024-04-13 20:13 8 2
        幻影~ · 找工作
        2024-04-07 10:44 15 2
        幻影~ · 问题
        2024-03-31 17:20 7 2
        TONYGFX · AOSP
        2024-03-28 17:11 4 2