Можно ли узнать, завершил ли LoaderManager загрузку всех AsyncTaskLoaders? - PullRequest
1 голос
/ 18 января 2012

Причина, по которой я спрашиваю, заключается в том, что я хочу отображать пульсатор ProgressDialog в ActionBar, пока выполняется любая AsyncTask, запущенная моей основной деятельностью.

Мое текущее решение (это полуработы) расширяет AsyncTaskLoader.В этом классе я переопределяю метод onForceLoad () и добавляю идентификатор загрузчика и имя класса к карте (с ключом идентификатора загрузчика), которая управляется в моем приложении;Когда на карту добавлен Loader, я показываю загрузочный пульсатор в ActionBar.Всякий раз, когда вызывается onLoadFinished в LoaderCallback, я удаляю Loader из карты, используя Id, и проверяю, пуста ли карта.Если карта пуста, я перестаю отображать пульсирующий сигнал.

Проблема, с которой я сталкиваюсь, заключается в том, что если, например, запущено 5 загрузчиков и пользователь нажимает кнопку обновить, что перезапускает все 5 загрузчиков, то не все onLoadFinished всех загрузчиков будут вызываться.Что приводит к тому, что загрузочный пульсатор отображается бесконечно, потому что Карта никогда не становится пустой.Я думаю, что это может иметь какое-то отношение к регулированию загрузки, но я не уверен.

...