子线程频繁更新ui导致界面卡顿问题?
问题描述:
我是在子线程更新UI,所以使用的是runOnUiThread接口来更新TextView。界面是个安装应用显示安装进度的效果(一个文本框显示数据,一个滚动条实时滑动到最底部)。由于上万次的调用printData()方法,导致界面卡顿,最后程序执行完成,我的界面要等1分多钟才显示完成,请问应该怎么解决。
答
你把 text.setText(text.getText() + result);换成text.append("result");试一下。
字符串拼接很耗时的,频繁显是大文本数据也很耗时。
答
换成text.append(result);没双引号
答
你是想把数据一行行的都显示在一个TextView里?
个人不支持这样做。
如果一定要的话,就用个StringBuilder做数据拼接吧,要知道每个新的字符串都是一个新的对象,多了很费资源的。
答
安装进度的回调的太多了, 加个限制判断,比如进度变化超过1%才回调就行。