我想在 Android 5.1 应用程序中收集触摸输入(位置和压力)。这可以通过onTouchListener
绑定到特定视图来实现。但我想在服务(在后台运行)中收集触摸事件,而不是绑定到特定视图。
是否有可能在服务中收集触摸事件?
我想在 Android 5.1 应用程序中收集触摸输入(位置和压力)。这可以通过onTouchListener
绑定到特定视图来实现。但我想在服务(在后台运行)中收集触摸事件,而不是绑定到特定视图。
是否有可能在服务中收集触摸事件?
基本上 - 是的。您可以将任何内容传递View
给您的服务并在那里添加触摸事件侦听器。但是这样你可能会面临严重的内存泄漏问题,因为View
你会通过Activity
. Fragment
Context
也许它可以与一些人一起工作ServiceConnection
并管理onCreate
/ onDestroy
( activity
/fragment
生命周期)。
但!真正更好的方法将是覆盖Activity
然后从它继承所有其他活动。在那里你会稍微减少内存泄漏的机会。您可以尝试将onTouchEvent
侦听器添加到活动装饰视图并接收整个屏幕的触摸事件。或者甚至在所有视图前面添加一些不可见的视图并在那里跟踪触摸(我不确定DecorView
变体是否有效)。然后将触球传递到任何你想要的地方。