Я хочу создать REST-клиент на телефоне Android.
Сервер REST предоставляет несколько ресурсов, например (GET)
http://foo.bar/customer List of all customer
http://foo.bar/customer/4711 The customer with id 4711
http://foo.bar/customer/vip List of all VIP customer
http://foo.bar/company List of all companys
http://foo.bar/company/4711 The company with the ID 4711
http://foo.bar/company/vip List of all VIP companys
Я (думаю) я знаю, как разговаривать с REST-сервером и получать нужную мне информацию. Я бы реализовал класс клиента REST с таким API
public List<Customer> getCustomers();
public Customer getCustomer(final String id);
public List<Customer> getVipCustomer();
public List<Company> getCompanies();
public Customer getCompany(final String id);
public List<Customer> getVipCompanies();
Ссылаясь на презентацию « Разработка клиентских приложений REST для Android » от Вирджила Добьянски, я узнал, что обрабатывать REST-запрос в рабочем потоке Activity - не лучшая идея. Вместо этого я должен использовать Service API.
Мне нравится идея иметь Singleton ServiceHelper, который связывается с (локальной) службой, но я боюсь, что я неправильно понял концепцию службы.
На данный момент я не понимаю, как сообщить результат вызова REST (выполненный асинхронно в службе) обратно в действие вызывающего абонента. Мне также интересно, нужна ли мне ОДНА служба, которая обрабатывает все запросы REST (с разными типами возврата), или мне нужна выделенная служба для каждого запроса REST.
Вероятно, у меня есть много других проблем с пониманием, поэтому лучше всего для меня будет образец приложения, отвечающего моим потребностям. В моем случае использования нет ничего необычного, и я надеюсь, что там есть пример приложения.
Пожалуйста, дайте мне знать!
Также полезны любые другие предложения, которые указывают мне правильное направление реализации (Android API-Demo не соответствует моему варианту использования).
Заранее спасибо.
Клаус
РЕДАКТИРОВАТЬ : похожие темы, найденные на SO (после публикации этого), которые ведут меня в нужном мне направлении (минимизируя сложный «шаблон Добьянски»):