AIR pour Android – Quitter une application Android proprement (arrêt GPS …)
Lorsqu'une application Android utilise des "sensors" tels que le GPS, ils restent actifs jusqu'à l'arrêt de l'application. Mais ces sensors sont souvent très gourmands en termes de consommation de batterie.
Ainsi, si vous activez la réception GPS dans votre application Air, celui-ci restera actif jusqu'à ce que vous quittiez l'application correctement. Une icône dans la barre des notifications vous indique si le GPS est en fonctionnement ou non. Ainsi, si vous retournez sur l'écran d'accueil avec le bouton HOME, vous remarquerez que le GPS sera toujours actif. Cela est aussi valable pour les applications natives écrites en Java.
Pour pouvoir indiquer que l'on a plus besoin de la réception GPS, il faut quitter l'application proprement. C'est souvent ce que l'on voit dans les applications Android natives, on a depuis le menu, une option "Quitter". Alors que l'on pourrait très bien revenir en permanence sur la HOME, quitter permet d'économiser les ressources du téléphone.
Attention, cette méthode remet votre application à "zéro", vous perdrez donc l'état actuel de votre application. Il est aussi possible d'utiliser cette fonctionnalité dans les applications Air pour Android à travers la classe NativeApplication, comme vous le feriez pour des applications bureautiques. Sur cet objet, une propriété static "nativeApplication" sur laquelle vous pourrez trouver la méthode exit().
Démonstration vidéo
Voilà une petite vidéo de l'application que j'ai créé pour montrer cette fonctionnalité. Un bouton permet d'écouter les évènements du GPS. Ensuite, je retourne sur la Home, l'icône GPS apparait toujours. Je retourne dans l'application et quitte proprement, l'icône disparait.
Le code de l'application
<?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 flash.sensors.Geolocation;
import mx.events.FlexEvent;
[Bindable]
private var _gpsEnabled:Boolean = false;
/**
*
*/
private var _geolocation:Geolocation = null;
/**
*
*/
protected function application1_applicationCompleteHandler(event:FlexEvent):void {
if (Geolocation.isSupported) {
enableGPSButton.enabled = true;
}
}
private function onEnableGPS():void {
if (!_gpsEnabled) {
// enable GPS
if (!_geolocation) {
_geolocation = new Geolocation;
// on va vérifier toutes les secondes
_geolocation.setRequestedUpdateInterval(1000);
}
_geolocation.addEventListener(GeolocationEvent.UPDATE, geolocationUpdateHandler);
}
}
private function geolocationUpdateHandler(event:GeolocationEvent):void {
ta.text = "Réception GPS: " + event.timestamp;
}
private function showInfo(text:String):void {
log.text = text;
}
private function onQuit():void {
NativeApplication.nativeApplication.exit();
}
]]>
</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 width="100%">
<mx:HBox>
<mx:Button id="enableGPSButton" label="Enable GPS" click="onEnableGPS();" height="100%"
width="100%" enabled="false" />
<mx:Button label="Quit" click="onQuit();" height="100%" width="100%" />
</mx:HBox>
<mx:Label id="log" fontSize="18" />
</mx:Box>
</mx:ApplicationControlBar>
<mx:TextArea id="ta" backgroundColor="white" width="100%" height="100%" enabled="false" />
</mx:Application>
Articles similaires
- AIR Mobile – Quitter une application AIR sous iOS
- AIR pour Android – Récupérer la géolocalisation de l'utilisateur dans une application Air
- AIR pour Android – Ouvrir une application depuis une URI avec arguments
- AIR pour Android – Détecter une sortie d'application avec Event.ACTIVATE / Event.DEACTIVATE
- Comparaison AIR pour Android, iOS Packager et AIR for TV (Novembre 2010)
Aucun trackbacks pour l'instant






9 juin 2011
Existe-il un moyen de détecter le fermeture de l'application par le gestionnaire de tache sous Android.