Когда мое приложение запускается в первый раз после установки, оно работает хорошо, но когда пользователь повторно запускает его после закрытия, приложение зависает на первой активности в течение некоторого времени и работает медленно, предоставляя журналы очистки из кеша шрифта. Это происходит только по первой активности.
В первом TableLayout
я загружаю строки и изображения из веб-сервиса и показываю данные в TableLayout
в динамически создаваемом TableRow
. Я использую специальный шрифт (Halvetica bold, если это имеет значение) для отображения данных. ScrollView
в котором я помещаю TableLayout
, не прокручивается при перезагрузке в течение нескольких секунд и иногда вызывает ANR. Я использую AsyncTask
для загрузки этих данных. Есть ли способ остановить эту очистку или возобновить работу, как будто она запускается в первый раз после установки?
Кажется, я понял. Проблема заключалась в том, что я использовал статический класс, который не получал сброс, и из-за этого TableRow
накапливаться, влияя на производительность.
Поэтому я объявил новый метод reset()
в этом статическом классе и вызвал его в onDestroy()
.
Кроме того, я преобразовал весь TableLayout
+ ScrollView
в ListView
которого есть функция recycle
. Теперь приложение работает отлично.