43 votes

Est-il possible de recevoir une notification lorsque l'utilisateur éteint l'appareil?

J'ai besoin de savoir quand l'utilisateur éteint son téléphone. Existe-il des émissions (ou similaire) qui informent lorsque l'utilisateur du téléphone est éteint?

69voto

Dave Webb Points 90034

Vous pouvez utiliser l' ACTION_SHUTDOWN d'Intention qui est diffusé lorsque le téléphone est sur le point d'arrêt. La documentation dit:

Les applications ne seront normalement pas besoin de manipuler ce, depuis le premier plan de l'activité seront suspendus.

En d'autres termes, si vous répondez à tous les événements de cycle de vie pour votre Activité de manière appropriée, il n'y a pas besoin d'utiliser cette information si vous voulez vraiment faire quelque chose de spécifique liée à l'arrêt.

L' ACTION_SHUTDOWN d'Intention a été introduit dans l'API de Niveau 4, en d'autres termes , il va seulement être envoyés sur les téléphones fonctionnant sous Android 1.6 ou version ultérieure.

Vous aurez piège de l'Émission avec un BroadcastReceiver. Il ressemblera à quelque chose comme ceci:

public class ShutdownReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        //Insert code here
    }

}

Vous aurez également besoin d'une entrée dans votre Manifeste comme suit:

<receiver android:name=".ShutdownReceiver">
  <intent-filter>
    <action android:name="android.intent.action.ACTION_SHUTDOWN" />
  </intent-filter>
</receiver>

Selon ce que vous êtes en train de faire, une autre option serait d'utiliser l' ACTION_BOOT_COMPLETED d'Intention qui est envoyé lorsque le téléphone est redémarré.

20voto

Naliba Points 347

En plus de ACTION_SHUTDOWN, vous devez ajouter android.intent.action.QUICKBOOT_POWEROFF de votre intent-filter.
ACTION_SHUTDOWN n'est pas toujours diffusée sur certains appareils HTC (par exemple, le Evo 4g).
Pour être plus précis, si vous choisissez de Redémarrer, ACTION_SHUTDOWN de diffusion, mais si vous choisissez de couper l'Alimentation, QUICKBOOT_POWEROFF est diffusé à la place.

0voto

noelicus Points 3788

Pour se développer sur ce que Dave Webb a dit est la façon appropriée de gérer ce:

Vous pouvez remplacer le Android Activité du Cycle de vie des fonctions:

protected void onPause();
protected void onResume();

Dans la plupart des scénarios de mise en œuvre de ces devrait être suffisant et ne sera pas vous obliger à traiter spécifiquement les "power off" des événements.

Il y a beaucoup plus d'informations sur l' Android Site web et dans la réponse à cette question du cycle de vie.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X