Comment ajouter une vue flottante à Android Window Manager et écouter les événements du bouton System / Hardware back

J'ai un service qui affiche un flottant vue sur le gestionnaire de fenêtres (à l'aide de WINDOW_TYPE_ALERT autorisation). Je suis en mesure d'afficher et d'effectuer des actions. Mais, j'ai deux questions spécifiques:

  1. Concernant la mise en œuvre de la variable vue
  2. Comment écouter système de bouton de retour de l'événement afin que je puisse rejeter la vue.

Mise en œuvre:

Dans le manifeste, j'ai ajouté les autorisations pour:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

J'ai un récepteur de radiodiffusion qui sera à l'écoute des événements d'Alarme. Lors de la réception de l'événement, je me lance un service pour afficher le flottant de vue. Voici le code que j'utilise pour créer la vue.

LayoutParams layOutParams = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
                WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
                PixelFormat.TRANSLUCENT);

Chaque fois qu'un utilisateur effectue une action sur la vue, je suis retrait de la vue depuis la fenêtre de gestionnaire et de tuer le service.

Ce que je voudrais savoir c'est si c'est la bonne façon d'aborder le problème ou est-il de meilleures façons de le faire? Et, dois-je apporter des modifications à la LayoutParams ou les garder?

Deuxièmement, je voudrais également faire disparaître ce flottant vue en cas de SYSTÈME/bouton de RETOUR de la conférence de presse. Tous les pointeurs sur la façon de le faire serait utile.

Attacher une capture d'écran de la variable pour une meilleure compréhension:

Comment ajouter une vue flottante à Android Window Manager et écouter les événements du bouton System /Hardware back

source d'informationauteur Handroid | 2013-08-08