В моем приложении я сразу показываю пользователю экран меню, а затем использую AsyncTask
для загрузки некоторых данных с диска.Загрузка занимает около 3 секунд, если это все, что должно было сделать приложение.Когда пользователь нажимает на пункт меню и данные еще не загружены, появляется экран «Пожалуйста, подождите, загрузка».
У меня две проблемы:
Iнедавно добавил рекламу в мое приложение и обнаружил, что это иногда приводит к зависанию моего приложения, потому что AsyncTask
никогда не завершает загрузку.Похоже, происходит то, что рекламный баннер (я использую AdMob, и это происходит, когда показываются объявления AdSense, которые AdMob время от времени делает) использует ресурсы, воспроизводя простую анимацию, и у AsyncTask
никогда не появляется шанс закончить.
Я хочу воспроизвести простую циклическую анимацию (например, сделать поворот вида) на экране моего меню, и это заставляет AsyncTask
занимать примерно в 5 раз больше времени, что делает фоновую загрузку бессмысленной.
Как мне избежать ситуаций, когда мои фоновые данные никогда не заканчивают загрузку или имеют такой низкий приоритет, что это занимает много времени?
Iне могу найти способ увеличить приоритет AsyncTask
.