почему при отправке ключей истекло время ожидания, а активность не отвечает?

#android

#Android

Вопрос:

Я работаю над приложением для Android, которое использует веб-сервисы. В этом я извлекаю изображения из Интернета и отображаю в imageview. Для извлечения изображений из Интернета требуется время, и иногда он выдает сообщение «Активность не отвечает», и в это время logcat отображает предупреждение как

«При отправке ключей истекло время ожидания отправки в com.Test.TestProject/com.Test.Тестовый проект.Activity1 «

Я не понимаю, почему это происходит.Пожалуйста, помогите мне.

Спасибо, Вишакха.

Ответ №1:

Прочитайте статью о безболезненном потоковом использовании. Вы выполняете загрузку в потоке пользовательского интерфейса, который выдаст ANRS (исключения, не отвечающие на действия), если он зависает на 30 секунд или около того. Вам нужно выполнить загрузку в фоновой задаче и обновить пользовательский интерфейс по завершении.

Комментарии:

1. Спасибо, я понял, теперь я извлекал изображения в UIThread, но теперь это отлично работает в фоновом потоке.

Ответ №2:

Вам следует избегать выполнения длительных задач в потоке пользовательского интерфейса. Рассмотрите возможность использования AsyncTask с ограниченным ProgressDialog.

Ошибка возникает из-за того, что поток пользовательского интерфейса занят загрузкой изображений, поэтому никакие ключевые события не могут быть отправлены. ОС обнаруживает это и закрывает ваше приложение.