【问题标题】:How to make all my activities listen to device's shakes?如何让我的所有活动都听设备的震动?
【发布时间】:2011-11-30 07:17:16
【问题描述】:

如何让应用程序监听设备的震动?我的意思不是应用程序中的唯一活动,而是所有活动。我使用 TabActivity 并在此处完成了注册/取消注册 SensorManager 的所有逻辑,并将其实现为 SensorEventListener 以检测抖动。然后选项卡中的活动侦听自定义 OnShakeListener,在我的 TabActivity 中声明。但这种逻辑导致崩溃。我选择这种实施方式是否正确并且应该寻找错误?或者我应该使用服务来获得我想要的东西吗?或者有没有其他办法?

【问题讨论】:

  • 如果您使用该数据针对每个活动执行特定的操作,那么使用通用侦听器对我来说没有意义。如果您只是想记录该数据或无论您正在进行什么活动,那么服务可能是有意义的。

标签: android listener sensors android-sensors


【解决方案1】:

在一个abstract Activity(例如:ShakeListenerActivity)中实现摇动侦听器(SensorEventListener)并让所有其他Activity扩展你ShakeListenerActivity。

在ShakeListenerActivity 中定义一个抽象方法(例如:shakeDetected(Params...))并在所有子Activities 中覆盖它。

在子Activity 的shakeDetected(Params...) 中,您可以相应地实现不同的逻辑。

当您通过SensorEventListener 检测到任何震动时,请致电shakeDetected()

【讨论】:

  • 非常感谢。我尝试这种方式没有成功。可能是我选择注册/取消注册 SensorManager 的位置有误...我应该在哪里使用这种方式?在 TabActivity 还是其他?
  • 在onCreate() 中注册并在ShakeListenerActivity 的onDestroy() 中取消注册
猜你喜欢
  • 1970-01-01
  • 2011-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-15
  • 1970-01-01
相关资源
最近更新 更多