AIR pour Android – Détecter une sortie d'application avec Event.ACTIVATE / Event.DEACTIVATE
Pour certaines rainsons fonctionnelles, vous aurez peut-être besoin de savoir lorsque l'utilisateur a quitté votre application pour retourner sur l'écran d'acceuil. Vous voulez peut-être aussi savoir quand il vient de revenir de l'écran d'accueil et qu'il arrive à nouveau sur votre application (afficher une notification etc…).
Vous pouvez déterminer ces instants par les évènements de base (aussi valable en Flex Web quand l'application perd le focus) Event.ACTIVATE et Event.DEACTIVATE.
Il suffit d'écouter ces évènements sur la propriété "stage" de votre application, au moins après l'évènement APPLICATION_COMPLETE.
Notez que vous pouvez effectuer des actions juste avant que l'application ne revienne sur le home screen (désactiver des éléments, ralentir le rafraichissement, …). De manière automatique, l'application se met "en veille" lorsqu'elle n'a pas le focus. Dans ce mode-là, elle est jouée à 4fps sauf si une vidéo est jouée. Si une vidéo se trouve dans l'application, celle-ci continuera à fonctionner de manière normale, même en arrière-plan.
Code de démonstration
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" paddingLeft="0" paddingRight="0"
paddingTop="0" paddingBottom="0"
applicationComplete="application1_applicationCompleteHandler(event)">
<mx:Style>
global {
font-size: 24;
}
</mx:Style>
<mx:Script>
<![CDATA[
import mx.events.FlexEvent;
/**
*
*/
protected function application1_applicationCompleteHandler(event:FlexEvent):void {
this.stage.addEventListener(Event.ACTIVATE, onActivate);
this.stage.addEventListener(Event.DEACTIVATE, onDeactivate);
}
public function onActivate(event:Event):void {
showInfo("Activate");
}
public function onDeactivate(event:Event):void {
showInfo("Deactivate");
}
private function showInfo(text:String):void {
log.text += text + "\n";
}
]]>
</mx:Script>
<mx:ApplicationControlBar left="0" right="0" bottom="0" height="80" paddingTop="8" paddingLeft="8"
paddingBottom="8" paddingRight="8" horizontalGap="8" verticalGap="8"
dock="true">
<mx:Box>
<mx:Label text="Listens Activate/Deactivate" />
<mx:Label text="Exit the application with HOME" />
</mx:Box>
</mx:ApplicationControlBar>
<mx:TextArea id="log" backgroundColor="white" width="100%" height="100%" enabled="false" />
</mx:Application>
Articles similaires
- Flex Tips – Détecter la perte de focus de l'application (Event.ACTIVATE et DEACTIVATE)
- AIR pour Android – Détecter l'appui sur les boutons BACK, MENU et SEARCH (hardware)
- AIR pour Android – Quitter une application Android proprement (arrêt GPS …)
- AIR pour Android – Ouvrir une application depuis une URI avec arguments
- AIR pour Android – Prendre des photos / vidéos avec CameraUI
Aucun trackbacks pour l'instant





