2013-06-10 3 views
0

Я пишу приложение «приборной доски», которое включает в себя несколько инструментов на основе барометрического датчика (для телефонов, где это доступно) и инструментов с использованием положения. Инструменты реализованы как фрагменты.Несколько фрагментов с одним и тем же датчиком

Вопрос заключается в том, что лучше всего управлять сенсорным интерфейсом в хост-активности, регистрировать активность хоста в качестве приемника событий датчика и вызывать методы фрагментов с помощью события датчика или связывать системные службы и регистрировать слушателей и т. д. через каждый фрагмент индивидуально?

Моя основная проблема - потребление батареи и возможные «столкновения» с фрагментами, блокирующими друг друга при доступе к одному и тому же ресурсу.

ответ

1

Вопрос в том, что это лучшая практика для управления сенсорным-интерфейса в принимающей деятельности, зарегистрировать хост активность в качестве слушателя событий датчика, и вызывать методы фрагментов с событием датчика, или для сопряжения СИСТЕМСЕРВИСА и регистрировать слушателей и т. д. через каждый фрагмент индивидуально?

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

Моей главная забота потребление батареи

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

и возможные «столкновения» с фрагментами блокируют друг друга при обращении к одному ресурсу

Это тоже не будет проблемой, больше, чем любой другой основной нити приложения раздора.

+0

Спасибо за ввод! Так что это похоже на стиль кодирования? Что касается потребления батареи, я предположил, что наличие двух фрагментов с использованием, например, gps может заставлять в два раза больше «запросов на позицию» и, следовательно, больше времени на gps? – Paamand

+0

@Paamand: В терминологии Android GPS не является «датчиком» - этот термин зарезервирован для таких вещей, как акселерометр. При этом либо радиостанция GPS включена, либо ее нет, и именно это происходит от потребления батареи. Два фрагмента, работающие одновременно, не изменят этого. – CommonsWare

+0

Когда вы регистрируетесь для прослушивания обновлений местоположения, вы можете запросить длительный период времени, который может использовать LocationManager для принятия решения о спящем режиме. Таким образом, теоретически, если второй пользователь GPS указал меньшее количество, он мог бы чаще включать питание. Я не смотрел код во многих версиях Android, но раньше слушатели, которые запрашивали более редкие обновления, получали столько же, сколько запрашивал период обновления. Таким образом, менеджер достаточно умен, чтобы использовать наиболее часто все периоды обновления, которые ему даны. –

Смежные вопросы