2017-06-30 2 views
0

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

0

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 FragmentContext. 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.