Android - зачем использовать отложенные намерения для геозон

Я только что закончил учебник по геозонированию на Android ( http://developer.android.com/training/location/geofencing.html), и мне интересно, почему "обратный вызов" для геозон осуществляется через ожидающие намерения, а не простой интерфейс обратного вызова.

Если реализовано в деятельности, обычно отключается клиент местоположения в onPause() в любом случае, ранее добавленные геозоны не будут отслеживаться и после того, как приложение приостановлено / будет уничтожено, так почему же отложенное намерение? Или я здесь ошибаюсь?

2 ответа

Решение

Интересно, почему "обратный вызов" для геозон осуществляется через ожидающие намерения, а не простой интерфейс обратного вызова.

Главным образом потому, что геозоны предназначены для работы даже без запуска вашего приложения.

В случае реализации в действии, как правило, в любом случае можно было бы отключить клиента определения местоположения в onPause(), поэтому ранее добавленные геозоны не будут отслеживаться ни после того, как приложение приостановлено / уничтожено, так почему же отложенное намерение? Или я здесь ошибаюсь?

Я считаю, что вы ошибаетесь здесь. На самом деле, геозоны специально не предназначены для прямого запуска пользовательского интерфейса, как обсуждается в документации:

Намерение, отправленное из Location Services, может инициировать различные действия в вашем приложении, но вы не должны запускать действие или фрагмент, потому что компоненты должны становиться видимыми только в ответ на действие пользователя.

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

Этот ответ может быть устаревшим - точность и надежность сервисов Google Play сильно изменились с момента его первоначального выпуска.

Некоторые из моих опытов с геозонами ниже. Прежде всего - главное преимущество этой технологии - ОЧЕНЬ низкое потребление батареи. На самом деле, я не могу заметить каких-либо изменений в сроке службы батареи. Это действительно впечатляет. Сервис, похоже, использует только Wi-Fi и сетевое местоположение. Я вообще не заметил, как работает GPS. Я не могу сказать, является ли это только скрытым символом местоположения или действительно не использует GPS. Точность - это ужасно. 20 круговых зон вообще не обнаружены, кроме дальности моего дома ap. Похоже, что круг всей позиции, в том числе ошибка должна быть внутри огороженной области. 1000 метров областей обнаруживаются иногда и с огромной задержкой. Те эксперименты проводились на открытой местности с очень низким количеством Wi-Fi. Я все еще пытаюсь найти действительно надежные настройки для этого сервиса. После получения намерений я хочу включить местоположение GPS и сделать окончательный подход в своем собственном коде.

Другие вопросы по тегам