Я кодирую приложение для Android, которое каждые 5 минут получает положение пользователя, сохраняет его в базе данных и отправляет на сервер.
Пожалуйста, позвольте пользователю выбирать местоположениепоставщик.Не у всех есть GPS на своем устройстве.Не у всех включен GPS.И не всем захочется, чтобы каждые пять минут включалось включение питания GPS.
Пожалуйста, позвольте пользователю выбирать период опроса, в том числе «никогда не опрашивать - я обновлю информацию вручную из действия».Также, пожалуйста, соблюдайте настройку фоновых данных (устарело с ICS).
Я думаю, что здесь нужна некоторая ясность.
Если опросдолжен продолжаться, даже если действие не на переднем плане, используйте AlarmManager
.Тем не менее, большинство рецептов для использования AlarmManager
будут иметь реальную работу (в вашем случае исправление GPS и сетевой ввод / вывод), обработанные IntentService
.Это не будет работать в вашем случае, потому что GPS асинхронный - вы не можете просто получить починку, когда захотите.Исправление займет много времени, возможно, навсегда, поэтому вам придется иметь дело с задержкой и, в конечном итоге, сроками выполнения операции.Запись Service
для этого возможно , но сложно, особенно если вы собираетесь собирать эту информацию, даже если устройство засыпает.
Если, однако, опрос толькодолжен продолжаться, пока активность находится на переднем плане, а устройство включено, я бы не стал беспокоиться о Service
.Просто задайте для действия postDelayed()
настройку запускаемого по расписанию бита кода каждые пять минут, а затем сделайте это.