Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何让我的所有活动都收听设备';什么样的握手?_Android_Listener_Sensors_Android Sensors - Fatal编程技术网

Android 如何让我的所有活动都收听设备';什么样的握手?

Android 如何让我的所有活动都收听设备';什么样的握手?,android,listener,sensors,android-sensors,Android,Listener,Sensors,Android Sensors,如何让应用程序监听设备的震动?我指的不是应用程序中的唯一活动,而是所有活动。我使用TabActivity,在这里注册/注销SensorManager的所有逻辑,并将其作为SensorEventListener实现,以检测震动。然后选项卡中的活动侦听在我的选项卡活动中声明的自定义OnShakeListener。但这种逻辑导致了崩溃。我选择这种实现方式正确吗?我应该寻找错误吗?或者我应该使用服务来获得我想要的东西?或者有其他方法吗?在一个抽象活动(比如:ShakeListenerActivity)中

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

在一个
抽象
活动
(比如:
ShakeListenerActivity
)中实现shake listener(
SensorEventListener
),并让所有其他
活动
扩展您的
ShakeListenerActivity

ShakeListenerActivity
中定义一个抽象方法(例如:
shakeDetected(Params…
),并在所有子
活动中重写它

在子
活动
shakeDetected(Params…
中,您可以相应地实现不同的逻辑


无论何时通过
SensorEventListener

检测到任何抖动,都可以调用
shakeDetected()
,非常感谢。我尝试了这种方法,但没有成功。可能是我选择了注册/注销SensorManager的位置错了。。。我应该在哪里使用这种方式?在TabActivity或任何其他文件中?在
onCreate()
中注册它,并在
ShakeListenerActivity
onDestroy()
中注销它。如果您使用该数据执行特定于每个活动的操作,那么使用公共侦听器对我来说没有意义。如果您只是想记录这些数据或其他东西,而不管您在进行什么活动,那么服务可能是有意义的。