2011-11-30 69 views
3

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

+0

动摇如果你正在做具体到每一个活动与数据的东西,然后它没有任何意义,我用一个共同的监听器。如果你只是想记录这些数据或者不管你在做什么活动,那么服务可能是有道理的。 – Craigy

回答

1

在实施摇监听器(SensorEventListener)一个abstractActivity(比如:ShakeListenerActivity),并得到所有其他Activity延长你ShakeListenerActivity

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

在孩子ActivityshakeDetected(Params...)你可以相应地实现不同的逻辑。

通话shakeDetected()每当你发现任何通过SensorEventListener

+0

非常感谢。我试过这种方式没有成功。可能是我选择注册/取消注册SensorManager的地方是错误的...我应该在哪里使用这种方式?在TabActivity或其他? –

+0

在'onCreate()'中注册它并在'ShakeListenerActivity'的'onDestroy()'中注销它 –

相关问题