2017-06-30 4 views
0

Android 5.1アプリケーションでタッチ入力(位置と圧力)を収集したいと考えています。これは特定のビューにバインドされたonTouchListenerで可能です。しかし、私はタッチイベントを(バックグラウンドで実行されている)サービス内で収集し、特定のビューに束縛されないようにしたいと考えています。Androidサービスがtouchイベントに耳を傾ける

サービスでタッチイベントを収集することはどういうことですか?

答えて

0

基本的には - はい。 Viewをサービスに渡して、そこにタッチイベントリスナーを追加することができます。しかし、これにより、深刻なメモリリークの問題に直面することがあります。ViewActivityFragmentContextに渡すためです。おそらく、ServiceConnectionで動作し、onCreate/onDestroyactivity/fragmentライフサイクル)を管理している可能性があります。

しかし!本当に良いアプローチはActivityをオーバーライドし、それから他のすべてのアクティビティを継承します。そこでは、メモリリークの可能性が少し低くなります。アクティビティデコレーションビューにonTouchEventリスナーを追加して、画面全体でタッチイベントを受け取ることができます。または、すべてのビューの前面に非表示のビューを追加してそこにトラックを追加することもできます(DecorViewバリアントが動作するかどうかはわかりません)。そして、どこにでも触れてください。

関連する問題