Синхронные сервисные звонки в Android - PullRequest
5 голосов
/ 10 февраля 2012

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

Сервис основан на Soap.Для этого я использую библиотеку ksoap, но давайте обратимся к делу.

Я был "вызывающим сервисом" с использованием асинхронных задач.Казалось, что все идет хорошо, но ...

Служба является последовательной и имеет тенденцию «терять» мои запросы, поэтому я не получаю надлежащих результатов.синхронный подход к решению проблемы, но таким образом я должен предоставить дополнительные кнопки / панели загрузки и т. д.

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

Как я могу использовать Службы Android?Чем они лучше?

Заранее спасибо за ответы.

1 Ответ

15 голосов
/ 10 февраля 2012

Вы можете фактически вызвать AsyncTask синхронно:

class MyTask extends AsyncTask<Void,Void,String>
{...}

MyTask x = new MyTask();
String result = x.execute().get();

См. Страницу документов для AsyncTask

...