Je voudrais recueillir l'entrée tactile (position et pression) dans une application Android 5.1. Ceci est possible avec un onTouchListener
lié à une vue spécifique. Mais je voudrais collecter les événements tactiles dans un service (fonctionnant en arrière-plan) et non liés à une vue spécifique. Est-il en quelque sorte possible de collecter des événements tactiles dans un service?Service Android écouter l'événement tactile
Répondre
Fondamentalement - oui. Vous pouvez passer n'importe quel View
dans votre service et y ajouter un écouteur d'événement tactile. Mais avec cela, vous pouvez faire face à de graves problèmes de fuite de mémoire, car avec View
vous passerez Activity
de Fragment
Context
. Peut-être qu'il peut fonctionner avec certains ServiceConnection
et la gestion onCreate
/onDestroy
(activity
/fragment
lifecycle).
Mais! Vraiment une meilleure approche sera prioritaire Activity
et ensuite hériter de toutes vos autres activités. Là, vous aurez un risque légèrement réduit de fuite de mémoire. Vous pouvez essayer d'ajouter l'écouteur onTouchEvent
à la vue de décor d'activité et recevoir des événements tactiles pour l'ensemble de l'écran. Ou même ajouter une vue invisible devant toutes les vues et les touches de piste là (je ne suis pas sûr si la variante DecorView
va fonctionner). Et puis passez les touches où vous voulez.