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

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

问题描述:

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

 

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

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

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

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

个人不支持这样做。

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

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