Я пытаюсь создать приложение, насыщенное REST.
Следуя одной из моделей, предложенных Вирджилом в его презентации Google I / O, я настроил свое приложение так:
Моя активность требует "помощника по обслуживанию", который является одиночным. Этот синглтон создает экземпляр Сервиса, который при запуске использует ContentProvider для обращения к базе данных моего приложения и запускает поток для доступа к веб-сервису для любой подходящей синхронизации. Последний кусок, который мне сейчас нужен, - это обратный вызов Service для синглтона, который вызывает любые прослушивания.
Это часть, в которой я запутался.
Прямо сейчас я смотрю на предоставляемый Android SDK RemoteService ApiDemo. В RemoteServiceBinding.java член IRemoveService объявлен как mService. mService используется в различных обработчиках для обработки обратных вызовов.
Однако этот код будет добавлен в мой Service Helper (помните, что это одиночный код). В этот класс может быть N вызовов для запуска Сервисов для функций базы данных и веб-сервисов. Я не могу просто объявить 1 переменную с именем mService, верно? RemoteService объявляет ISecondaryService, но у меня может быть N кодов, вызывающих этот синглтон. Это должно быть динамично.
Ex:
- Пользователь находится на Деятельности A и хочет показать вещи в списке. Удар по одиночке Service Helper, возвращает курсор и запускает службу, которая запрашивает у веб-службы новые вещи . mService создается для обработки обратных вызовов для этого экземпляра службы.
- До того, как эта Служба будет завершена, пользователь переключается на Занятие B и делает то же самое для вещей в списке Занятия. mService уже создан для предыдущего экземпляра службы. Что мне теперь делать?
- Предположим, что соединение было медленным, и пользователь мог сделать это в течение 20 действий, прежде чем первый завершил получение новых вещей . mService уже создан для предыдущего экземпляра службы. Что мне делать сейчас ?????
Что мне здесь делать? Я в растерянности.
Было бы действительно здорово, если бы приложение Twitter уже было открыто ...