Улучшения производительности SpannableStringBuilder?

Я пишу приложение, которое постоянно обновляет TextView с помощью SpannableStringBuilder, который использует тонну пролетов. Сравнительный анализ показывает, что неудивительно, что setText() и drawText() являются большими блокировщиками, а SpannableStringInternal.getSpans() имеет единственное наивысшее исключительное время ЦП.

Есть ли способ повторно использовать один и тот же промежуток, чтобы мне не приходилось засорять мой SpannableString несколькими одинаковыми промежутками? Есть ли другие способы улучшить производительность SpannableString?

1 ответ

Решение

После долгих экспериментов я обнаружил, что создание настраиваемого View, переопределяющего onDraw для рисования собственного текста, абсолютно подходит для этого. Нет способа помешать getSpans использовать массу отражений.

Другие вопросы по тегам