Очереди Android и темы - PullRequest
       16

Очереди Android и темы

0 голосов
/ 01 декабря 2011

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

Чего я хочу достичь, это когда пользователь входит в системуприложение, я хочу запустить поток, если устройство подключено к сети (какая сеть не имеет значения)

Поток должен выполнять действие каждые 10 минут.

Чтоэтот поток должен сделать, цикл через список, точнее очередь.Эта очередь будет иметь объекты, и на основе объектов в очереди, когда будет доступно доступное соединение, выполняется.

Очередь будет заполняться через поток приложения.Например, заполнив анкету.

Ответы должны быть синхронизированы с сервером.Каждый вопрос может включать снимки, снятые с камеры и т. Д., Поэтому я хочу сохранить определенные данные в виде объекта, поместить их в очередь и получить поток, обрабатывающий запросы http.Таким образом, пользовательский интерфейс не будет заблокирован.Очень важно синхронизировать, когда это возможно.

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

Существуют ли конкретные объекты или списки очереди?Я хочу выполнить цикл по списку очередей, который можно заполнить в любое время, пока программа работает, с помощью метода thread.sleep, когда список полностью пуст.

Пожалуйста, оставьте мне подсказки и советы о том, как это сделать.иди с этим.

1 Ответ

1 голос
/ 01 декабря 2011

Служба - это не собственный процесс ... из Документации : "Служба не отдельный процесс. Сам объект службы не подразумевает, что он запущен всвой собственный процесс; если не указано иное, он выполняется в том же процессе, что и приложение, частью которого он является. "

Служба действительно является лучшим выбором для того, о чем вы говорите.Вы создаете свой собственный поток в службе, который затем выполняет следующее: проверяет свою очередь на наличие объектов и отправляет их на сервер (так как вы уже не в потоке пользовательского интерфейса, вы можете сделать это, не создавая еще один поток, если хотите),Если очередь пуста, используйте Таймер , чтобы запланировать еще один вызов вашего метода загрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...