0

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

是否有可能在服务中收集触摸事件?

4

1 回答 1

0

基本上 - 是的。您可以将任何内容传递View给您的服务并在那里添加触摸事件侦听器。但是这样你可能会面临严重的内存泄漏问题,因为View你会通过Activity. Fragment Context也许它可以与一些人一起工作ServiceConnection并管理onCreate/ onDestroy( activity/fragment生命周期)。

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

于 2017-06-30T15:41:55.450 回答