Est-il possible de recevoir une notification lorsque les pouvoirs de l'utilisateur hors du dispositif?

StackOverflow https://stackoverflow.com/questions/2190126

  •  25-09-2019
  •  | 
  •  

Question

Je dois savoir quand les pouvoirs de l'utilisateur hors de son / son téléphone. Y at-il des émissions (ou similaire) que lorsque le téléphone avisez de l'utilisateur est hors tension?

Était-ce utile?

La solution

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

  

Apps ne sera normalement pas besoin de gérer cela, puisque l'activité de premier plan sera mise en pause ainsi.

En d'autres termes, si vous répondez à tous les événements du cycle de vie de votre activité de façon appropriée, il n'y a pas besoin d'utiliser sauf si vous voulez vraiment faire quelque chose de spécifique lié à l'arrêt.

Le ACTION_SHUTDOWN intention a été introduite dans l'API de niveau 4, en d'autres termes il sera seulement envoyé sur les téléphones fonctionnant sous Android 1.6 ou version ultérieure .

Vous aurez le piège de diffusion 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>

En fonction de ce que vous faites, une autre option serait d'utiliser le ACTION_BOOT_COMPLETED intention qui est envoyé lorsque le téléphone est redémarré.

Autres conseils

En plus de ACTION_SHUTDOWN, vous devez ajouter android.intent.action.QUICKBOOT_POWEROFF à votre filtre intention.
ACTION_SHUTDOWN est pas toujours diffusé sur certains appareils HTC (par exemple l'Evo 4g).
Pour être plus précis, si vous choisissez Redémarrer, ACTION_SHUTDOWN est diffusé, mais si vous choisissez Power Off, QUICKBOOT_POWEROFF est diffusé à la place.

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

Vous pouvez remplacer les fonctions du cycle de vie d'activité Android :

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

Dans la plupart des scénarios mettant en œuvre ces devraient être suffisantes et ne vous obliger à gérer spécifiquement les événements « hors tension ».

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top