Est-il possible de recevoir une notification lorsque les pouvoirs de l'utilisateur hors du dispositif?
-
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?
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 .