2017-06-30 125 views
0

我想在Android 5.1應用程序中收集觸摸輸入(位置和壓力​​)。這可以通過綁定到特定視圖的onTouchListener來實現。但我想收集服務中的觸摸事件(在後臺運行),而不是綁定到特定的視圖。Android服務監聽觸摸事件

是否有可能在服務中收集觸摸事件?

回答

0

基本上 - 是的。您可以將任何View傳遞到您的服務並在那裏添加觸摸事件偵聽器。但有了這個,你可以面對嚴重的內存泄漏問題,因爲View你會通過ActivityFragmentContext。也許它可以與一些ServiceConnection和管理onCreate/onDestroyactivity/fragment生命週期)。

但是!真正更好的方法將覆蓋Activity,然後繼承你的所有其他活動。在那裏你會有內存泄漏的機率減少。您可以嘗試將onTouchEvent偵聽器添加到活動裝飾視圖並接收整個屏幕的觸摸事件。或者甚至在所有視圖前添加一些隱形視圖並跟蹤觸摸(我不確定DecorView變體是否可用)。然後通過觸摸無論你想要的地方。