qq_34205684
小超小调
采纳率60%
2020-12-21 20:31

子线程频繁更新ui导致界面卡顿问题?

我是在子线程更新UI,所以使用的是runOnUiThread接口来更新TextView。界面是个安装应用显示安装进度的效果(一个文本框显示数据,一个滚动条实时滑动到最底部)。由于上万次的调用printData()方法,导致界面卡顿,最后程序执行完成,我的界面要等1分多钟才显示完成,请问应该怎么解决。

 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • liudi_jing 追逐时代的脚步 4月前

    你把 text.setText(text.getText() + result);换成text.append("result");试一下。

    字符串拼接很耗时的,频繁显是大文本数据也很耗时。

    点赞 1 评论 复制链接分享
  • liudi_jing 追逐时代的脚步 4月前

    换成text.append(result);没双引号

    点赞 1 评论 复制链接分享
  • a11amok 11amok 3月前

    安装进度的回调的太多了, 加个限制判断,比如进度变化超过1%才回调就行。 

    点赞 评论 复制链接分享
  • lht80s lht80s 4月前

    你是想把数据一行行的都显示在一个TextView里?

    个人不支持这样做。

    如果一定要的话,就用个StringBuilder做数据拼接吧,要知道每个新的字符串都是一个新的对象,多了很费资源的。
     

    点赞 评论 复制链接分享