我正在编写一个应用程序,该应用程序不断使用跨越大量跨度的SpannableStringBuilder更新TextView。基准测试表明,不出所料,setText()和drawText()都是大阻塞者,而SpannableStringInternal.getSpans()拥有单个最高的独占CPU时间。
有没有办法重用相同的跨度,所以我不必用多个相同的跨度阻塞我的SpannableString?还有其他方法可以提高SpannableString的性能吗?
答案 0 :(得分:3)
经过大量的实验,我发现创建一个覆盖onDraw的自定义View来绘制自己的文本绝对是这里的方法。没有办法阻止getSpans使用大量的反射。