Использование SOAP с рекомендациями по реализации Android - PullRequest
1 голос
/ 28 августа 2011

Я пытаюсь подключиться к сервису SOAP с помощью Android и прочитал на SO, а также на других сайтах об использовании ksoap2.

Я также читал Android в действии, что указывает на то, что любой продолжительный код (> 5 секунд) в потоке пользовательского интерфейса должен выполняться либо в обработчике, либо в виде службы.Существуют ли какие-либо рекомендации относительно того, когда их использовать, а не просто использовать их внутри Упражнения.Во многих примерах как в SO, так и в Интернете обработка SOAP выполняется непосредственно внутри Activity (либо в методах жизненного цикла, либо в обработчиках событий), но в моем случае я знаю, что существуют определенные методы SOAP, которые могут занять более 5 секунд,

Любые указания или рекомендации относительно того, когда следует использовать Android-обработчик или службы, были бы очень полезны.

Ответы [ 3 ]

2 голосов
/ 28 августа 2011

Если пользовательский интерфейс зависит от ответа в тот же момент времени, то я рекомендую вам использовать класс AsyncTask.AsyncTask предназначены и рекомендуются для таких длительных операций.Предполагается, что ответ сервера тесно связан с пользовательским интерфейсом, поэтому вы НЕ ДОЛЖНЫ хранить пользовательский интерфейс замороженным во время выполнения этой длинной операции.запускать в фоновом потоке, следует помнить, что в этом методе ВЫ НЕ МОЖЕТЕ ОБНОВЛЯТЬ UI, а в onPostExecute() / onProgressUpdate() вы обновляете UI ответом от сервера.Вы не были введены в полном порядке, здесь:

http://developer.android.com/reference/android/os/AsyncTask.html

Не забудьте о Threading Rules

2 голосов
/ 28 августа 2011

Я рекомендую вместо этого использовать AsyncTask.Посмотрите здесь: http://developer.android.com/reference/android/os/AsyncTask.html

По сути, вы можете выполнять вызовы SOAP в методе doInBackground, который выполняется в фоновом потоке, и вы можете обновить свой интерфейс в методе onPostExecute(), таким образомВы можете избежать ужасной ошибки ANR (Android Not Responding).

0 голосов
/ 28 ноября 2011

Посмотрите на this для примера AsyncTask.

Я предлагаю вам правильно обратиться к странице разработчиков Android для AsyncTask перед началом реализации.

Вселучший

Ура

...