Я работаю над своей первой игрой для Android, и у меня проблема.
Группа пользователей сообщила об ANR на своих телефонах на этапе загрузки текстур.
У меня есть несколько сжатых текстур в формате jpg, и распаковка на телефоне занимает около 2 секунд
и загружаю их в opengl, и на эмуляторе это занимает полминуты, и я не получаю ANR ни в одном случае, тем не менее, я продолжаю получать отчеты ANR.
Я понимаю, что это тяжелая операция, и она может занять много времени (> 5 секунд).
Поэтому мне нужно знать, как правильно выполнять всю эту длительную загрузку (это не приведет к ANR на любом устройстве).
Я использовал два метода, которые помогают эффективно избежать ANR на эмуляторе (я использую его для моделирования медленного устройства), но ни один из них не работает для пользователя:
1) Выполнить всю загрузку в методе onSurfaceCreated (...).
2) Разделите загрузку на множество мелких частей и выполните одно за другим в
Метод OnDrawFrame (...).
Как правильно это сделать?