Android-如何在子线程中更新UI

一.前言:

项目开发中会涉及到一些耗时操作,这个时候就会开启一个子线程,将耗时操作放到子线程中取操作,操作完毕后,往往还要同步更新ui,这个时候如果直接在子线程中更新ui,将会导致程序的闪退,同时还会看到如下报错

android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
意思是:只有创建视图层次结构的原始线程才能触及它的视图,其实说白了就是在子线程不能做更新UI的操作。

二.解决方法:

  • 第一种方式 : runOnUiThread
  • 第二种方式 : view.post();
  • 第三种方式 : Handler.post();

第一种方式 : runOnUiThread


第二种方式 : view.post();


第三种方式 : Handler.post();