小超小调
2020-12-21 20:31
采纳率: 60%
浏览 378

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

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

 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 追逐时代的脚步 2020-12-21 22:42
    已采纳

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

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

    点赞 打赏 评论
  • 追逐时代的脚步 2020-12-21 22:42

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

    点赞 打赏 评论
  • lht80s 2021-01-20 16:00

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

    个人不支持这样做。

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

    点赞 打赏 评论
  • 11amok 2021-02-04 10:18

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

    点赞 打赏 评论

相关推荐 更多相似问题