Где разместить AsyncTask (), чтобы я мог вызвать его для загрузки изображения? - PullRequest
1 голос
/ 29 сентября 2011

Ниже приведено мое кодирование, где оно будет загружать изображение при вызове этого действия.Но я хотел отобразить progressDialog, когда он загружал изображения с сервера, а не просто черный экран, представленный пользователю.Я слышал, что AsyncTask может это сделать, но я остановился на том, где разместить функцию AsyncTask и как вызвать ее.Программа загружает изображение с сервера / кеша.Большая часть источника, который я нашел в интернете, не говорит много.

1 Ответ

0 голосов
/ 29 сентября 2011

AsyncTask чем-то похож на Thread. Он используется для обработки некоторых трудоемких операций, чтобы основной поток не блокировался. В вашем случае AsyncTask подходит. Однако место, куда вы хотели бы поместить его, зависит от вашей логики.

Пожалуйста, прочитайте SDK: AsyncTask , чтобы получить больше информации об этом. Есть также фрагмент кода, который может вам помочь.

Добавлено:

Ну, я понимаю вашу озабоченность. Если вы просто хотите показать индикатор выполнения, чтобы сообщить пользователям, что приложение загружает изображения с сервера. Вы можете обращаться с этим способом:
1. Создайте XML-файл макета, содержащий ProgressBar.
2. В OnCreate в классе LargeImageScroller вызовите setContentView(R.layout.that_layout), чтобы отобразить индикатор выполнения, и запустите AsyncTask для загрузки изображений.
3. Внутри AsyncTask переопределите onProgressUpdate(Integer... progress), чтобы сообщить ProgressBar о прогрессе загрузки.
4. Внутри AsyncTask переопределите onPostExecute(Long result). Этот метод будет вызван после завершения AsyncTask. Здесь вы можете сделать: S ampleView sv=new SampleView(this), а затем передать изображения объекту sv. Затем позвоните setContentView(sv), чтобы показать ваши изображения.

Это всего лишь мой ход мыслей. Я думаю, что вы можете использовать AsyncTask либо в классе LargeImageScroller, либо в классе SampleView. Надеюсь, этот комментарий поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...