Android服务听取触摸事件

时间:2017-06-30 15:26:59

标签: android touch android-service android-touch-event

我想在Android 5.1应用程序中收集触摸输入(位置和压力​​)。通过绑定到特定视图的onTouchListener可以实现此目的。但我想在服务中收集触摸事件(在后台运行)而不是绑定到特定视图。

以某种方式可以在服务中收集触摸事件吗?

1 个答案:

答案 0 :(得分:0)

基本上 - 是的。您可以将任何View传递到您的服务中,并在那里添加触摸事件监听器。但是这样你可能会遇到严重的内存泄漏问题,因为View Activity会传递Fragment Context的{​​{1}}。也许它适用于某些ServiceConnection和管理onCreate / onDestroyactivity / fragment生命周期)。

但是!真正更好的方法将覆盖Activity,然后继承所有其他活动。在那里你会略微减少内存泄漏的可能性。您可以尝试将onTouchEvent侦听器添加到活动装饰视图,并接收整个屏幕的触摸事件。或者甚至在所有视图前添加一些不可见的视图并跟踪那里的触摸(我不确定DecorView变体是否有效)。然后在任何地方传递触摸。