Поэтому я обычно не даю совета, если нет четкой попытки / кода для показа, но я помню, когда я впервые столкнулся с AsyncTasks и многопоточностью в целом, и как это сначала немного сбивало с толку, поэтому Я начну с правильного пути.
Таким образом, AsyncTask в основном запускает процесс, который может занять некоторое время (например, загрузка информации с сервера или, в вашем случае, выборка файлов). У него есть пара методов, которые подробно описаны здесь здесь , но я считаю, что для вашего сценария вам просто нужно использовать методы doInBackground
и onPostExecute
. То, что вы, вероятно, будете делать в каждом из них, - это получать реальные изображения и данные для вашего ListView в doInBackground
, а затем обновлять ListView для отображения этих данных в onPostExecute
. Рассмотрим примеры, обозначенные здесь . По сути, метод doInBackground
отправит некоторые данные (в данном случае ваши файлы и другие вещи - обычно в виде массива или списка или чего-то еще, если отправлено много данных) в метод onPostExecute
, который будет обрабатывать данные оттуда.
Что происходит, так это то, что вы перегружаете ваш основной поток пользовательского интерфейса, и программа будет периодически прерывать выборку и загрузку изображений с вашим пользовательским интерфейсом. AsyncTask
позаботится об этом за вас, перебросив всю работу на отдельные рабочие потоки. Проблемы обычно возникают при перегрузке потока пользовательского интерфейса, например, неожиданное закрытие вашей программы, потому что Android замечает, что основной поток приложения использует слишком много ресурсов (никаких реальных ошибок в вашем коде).
Что касается отложенной загрузки данных изображения, я не совсем уверен, как это работает (никогда не использовал его), но этот кажется действительно полезным.
Надеюсь, это дало вам какое-то направление.