Активность не отвечает ошибка на эмуляторе при использовании веб-сервисов при разборе json? - PullRequest
0 голосов
/ 29 октября 2010

Я новичок в Android, занимаюсь разработкой приложения для веб-сервисов, использующего анализ json с помощью метода httpget, на самом деле не могу использовать метод http post в Android.

Работает нормально, но часто выдает ошибку на эмуляторедействие не отвечает принудительно закрыть действие. Когда я помещаю этот URL в браузер, он показывает результат. Но я не знаю, почему произошла ошибка, не отвечающая на это действие.

Я думаю, что httprequest потребовалось больше времени для получения данных.с сервера, но я не уверен.любой поможет мне, как избежать этой ошибки или как минимизировать это.

Я хочу знать, каковы возможности, чтобы это действие не отвечало на ошибку.

Спасибо,

Лакшманан

Ответы [ 2 ]

0 голосов
/ 18 мая 2012

Чтобы избежать диалога ANR (приложение не отвечает),

Ваш код бизнес-логики находится внутри doBackground () AsyncTask, и вам также может потребоваться переопределить onPostExecute () и т. Д.После этого лучше вызвать асинхронную задачу в Службе (связанная или обычная служба).

Служба: (связанная служба или обычная служба в соответствии с вашими требованиями)

От, документация для офиса AndroidСлужба привязывается, когда компонент приложения связывается с ней, вызывая bindService ().Связанная служба предлагает интерфейс клиент-сервер, который позволяет компонентам взаимодействовать со службой, отправлять запросы, получать результаты и даже делать это в процессах с межпроцессным взаимодействием (IPC).Связанный сервис работает только до тех пор, пока к нему привязан другой компонент приложения.Несколько компонентов могут связываться со службой одновременно, но когда все они связываются, служба уничтожается.

0 голосов
/ 29 октября 2010

Вам необходимо выполнить операции блокировки, такие как ввод / вывод, в отдельном потоке - см. Ниже связанный ресурс:

http://developer.android.com/guide/practices/design/responsiveness.html:

В Android система защищает от приложений, которые не реагируют в течение определенного периода времени, отображая диалоговое окно для пользователя, которое называется диалоговым окном «Приложение не отвечает» (ANR) и показано справа на рисунке 1. Пользователь может выбрать пусть приложение продолжится, но пользователю не понравится работать с этим диалоговым окном каждый раз, когда он или она использует ваше приложение. Важно адаптировать отзывчивость к вашему приложению, чтобы у системы никогда не было причин отображать пользователю диалог ANR.

...