Простой TextView.setText вызывает использование ЦП на 40%

Запуск моего приложения вызывает ~ 40% загрузки процессора на моем телефоне:

final String position = String.format("%02d:%02d:%02d", time.getHours(), time.getMinutes(),
                time.getSeconds());
getActivity().runOnUiThread(new Runnable() {
    @Override
    public void run() {
         c.mTxtPosition.setText(position);
         ...

КомментируяsetText По методу загрузка ЦП снижается до ожидаемого уровня ~ 4%. Метод вызывается каждую секунду и обновляет ImageViews, CustomViews ... не вызывая такого же превышения нагрузки. Помимо использования ЦП, dalvik постоянно сообщает о сборе мусора из 10-1000 объектов, просто вызываяsetText().

Создайте файл трассировки следующим образом:

Debug.startMethodTracing("setText");
c.mTxtPosition.setText(position);
Debug.stopMethodTracing();

В трассировке перечисляются следующие методы как Top 5 по их соответствующим эксклюзивным CPU%:

ViewParent.invalidateChildInParent(16%) View.requestLayout(11%) ViewGroup.invalidateChild(9%) TextView.setText(7%) toplevel(6%)

У кого-нибудь есть объяснение этому?

Ответы на вопрос(4)

Ваш ответ на вопрос