Как заставить приложение слушать тряску устройства? Я имею в виду не только активность в приложении, но и все. Я использовал TabActivity и выполнил всю логику регистрации/отмены регистрации SensorManager здесь, а также реализовал его как SensorEventListener для обнаружения тряски. Затем действия на вкладках прослушивались для пользовательского OnShakeListener, объявленного в моем TabActivity. но эта логика ведет к краху. Правильно ли я выбрал этот путь реализации и должен ли искать ошибки? ИЛИ Должен ли я вместо этого использовать службу, чтобы получить то, что я хочу? Или есть другой способ?
Как заставить все мои действия слушать тряску устройства?
comment
Если вы делаете что-то конкретное для каждого действия с этими данными, то мне не имеет смысла использовать общий слушатель. Если вы просто хотите регистрировать эти данные или что-то еще, независимо от того, чем вы занимаетесь, то сервис может иметь смысл.
- person skynet   schedule 30.11.2011
Ответы (1)
Реализуйте прослушиватель встряхивания (SensorEventListener
) в одном abstract
Activity
(скажем: ShakeListenerActivity
) и получите все остальные Activity
, расширяющие ShakeListenerActivity
.
определить абстрактный метод (скажем: shakeDetected(Params...)
) в ShakeListenerActivity
и переопределить его во всех дочерних Activities
.
В дочернем Activity
shakeDetected(Params...)
вы можете реализовать другую логику соответственно.
звоните shakeDetected()
всякий раз, когда вы обнаружите какое-либо дрожание через SensorEventListener
person
Adil Soomro
schedule
30.11.2011
Большое спасибо. Я пробовал этот способ безуспешно. Может быть, я ошибся с выбором места для регистрации/отмены регистрации SensorManager... Где я должен это сделать, используя этот способ? в TabActivity или любом другом?
- person charley_chaplin; 30.11.2011
зарегистрируйте его в
onCreate()
и отмените регистрацию в onDestroy()
из ShakeListenerActivity
- person Adil Soomro; 30.11.2011