#android
#Android
Вопрос:
Я работаю над приложением для Android, которое использует веб-сервисы. В этом я извлекаю изображения из Интернета и отображаю в imageview. Для извлечения изображений из Интернета требуется время, и иногда он выдает сообщение «Активность не отвечает», и в это время logcat отображает предупреждение как
«При отправке ключей истекло время ожидания отправки в com.Test.TestProject/com.Test.Тестовый проект.Activity1 «
Я не понимаю, почему это происходит.Пожалуйста, помогите мне.
Спасибо, Вишакха.
Ответ №1:
Прочитайте статью о безболезненном потоковом использовании. Вы выполняете загрузку в потоке пользовательского интерфейса, который выдаст ANRS (исключения, не отвечающие на действия), если он зависает на 30 секунд или около того. Вам нужно выполнить загрузку в фоновой задаче и обновить пользовательский интерфейс по завершении.
Комментарии:
1. Спасибо, я понял, теперь я извлекал изображения в UIThread, но теперь это отлично работает в фоновом потоке.
Ответ №2:
Вам следует избегать выполнения длительных задач в потоке пользовательского интерфейса. Рассмотрите возможность использования AsyncTask с ограниченным ProgressDialog.
Ошибка возникает из-за того, что поток пользовательского интерфейса занят загрузкой изображений, поэтому никакие ключевые события не могут быть отправлены. ОС обнаруживает это и закрывает ваше приложение.