Android 如何让我的所有活动都收听设备';什么样的握手?
如何让应用程序监听设备的震动?我指的不是应用程序中的唯一活动,而是所有活动。我使用TabActivity,在这里注册/注销SensorManager的所有逻辑,并将其作为SensorEventListener实现,以检测震动。然后选项卡中的活动侦听在我的选项卡活动中声明的自定义OnShakeListener。但这种逻辑导致了崩溃。我选择这种实现方式正确吗?我应该寻找错误吗?或者我应该使用服务来获得我想要的东西?或者有其他方法吗?在一个Android 如何让我的所有活动都收听设备';什么样的握手?,android,listener,sensors,android-sensors,Android,Listener,Sensors,Android Sensors,如何让应用程序监听设备的震动?我指的不是应用程序中的唯一活动,而是所有活动。我使用TabActivity,在这里注册/注销SensorManager的所有逻辑,并将其作为SensorEventListener实现,以检测震动。然后选项卡中的活动侦听在我的选项卡活动中声明的自定义OnShakeListener。但这种逻辑导致了崩溃。我选择这种实现方式正确吗?我应该寻找错误吗?或者我应该使用服务来获得我想要的东西?或者有其他方法吗?在一个抽象活动(比如:ShakeListenerActivity)中
抽象活动(比如:ShakeListenerActivity
)中实现shake listener(SensorEventListener
),并让所有其他活动扩展您的ShakeListenerActivity
在ShakeListenerActivity
中定义一个抽象方法(例如:shakeDetected(Params…
),并在所有子活动中重写它
在子活动
的shakeDetected(Params…
中,您可以相应地实现不同的逻辑
无论何时通过SensorEventListener
检测到任何抖动,都可以调用shakeDetected()
,非常感谢。我尝试了这种方法,但没有成功。可能是我选择了注册/注销SensorManager的位置错了。。。我应该在哪里使用这种方式?在TabActivity或任何其他文件中?在onCreate()
中注册它,并在ShakeListenerActivity
的onDestroy()
中注销它。如果您使用该数据执行特定于每个活动的操作,那么使用公共侦听器对我来说没有意义。如果您只是想记录这些数据或其他东西,而不管您在进行什么活动,那么服务可能是有意义的。