-3

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

Таким образом, планшет не имеет ничего общего с запуском этого приложения и постоянно проверяет сервер на наличие обновлений на экране.

Что может быть лучшей практикой, чтобы приложение всегда работало и подключалось?

По моему опыту, у меня есть 2 варианта решения этой проблемы:

  1. Сервис всегда работает и подключен к моей деятельности, чтобы сохранить его обновить.
  2. Продолжить работу в тем в рамках этой деятельности, так как деятельность будет продолжаться. Приложение будет всегда включено.

Мои вопросы:

  1. Что является лучшей практики для поддержания приложение работает все?
  2. Какова наилучшая практика для подключения приложения? Темы в действии? или услугу, связанную с деятельностью?
  3. Есть ли предпочтительная структура для такого типа приложения?

спасибо

ответ

2
  1. Батарея - это то, что я всегда буду учитывать, особенно когда необходимо выполнить сетевое задание. Поэтому проанализируйте точку, где абсолютно необходимо подключиться к серверу.
  2. Всякий раз, когда вам сервер должен связаться с использование устройства GCM толчок уведомление, что сэкономит ваш сок батареи, которые вы проведете в опросе сервера

Ну для

службы в/с Thread

относится к службе обслуживания, в которой вы должны создавать рабочие потоки, которые будут выполнять сетевые задачи эти потоки будут уведомлять основной поток услуг, когда они e для этого вам нужно для пользователей Handlers in android

Я буду использовать сервис по потоку, потому что если вы закроете сетевой запрос активности, все равно будет выполнен после завершения запроса, сохраните его в какой-либо форме хранения (предварительная версия/провайдера) и получить их от них. Как только вы закончите не для того, чтобы уничтожить услугу всеми остановками, подходящий момент, иначе служба будет изнурять ваш телефонный ресурс. что сделает вас плохим гражданином.

Простая реализация шаблона, о котором я упоминал, представляет собой IntentService, который автоматически порождает рабочий поток. Если вам просто нужно переопределить метод handleIntent и сделать все, что сильно поднимается там, что не будет в основном потоке. И IntentService убивает себя, когда, если считает себя делать глупости вопрос, который вы задали в моем понимании относится к синхронизации с сервером вы можете найти больше в от андроида документации http://developer.android.com/training/building-connectivity.html

1

Если вы читали официальную доку от Android. Лучшим решением является использование сервиса для вашего приложения. Он готов постоянно работать в фоновом режиме. Вы можете реализовать его для прозрачной проверки сети, и вы можете привязать эту информацию к другому действию. Кроме того, он более масштабируемый, если позже вы захотите изменить свое соединение или требования (это не повлияет на действия ваших приложений).

EDIT. Хорошо, что если когда-нибудь по какой-то причине ваше приложение не находится на переднем плане. Служба все еще работает. Готовятся к выполнению долгосрочных задач. http://developer.android.com/guide/components/services.html

+0

Не могли бы вы привести андроид DOCU так я может прочитать его. Кроме того, приложение не должно быть в фоновом режиме, оно всегда будет работать и на переднем плане. Спасибо – MBH