IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Nettoyage mémoire automatique ?


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2012
    Messages : 20
    Par défaut Nettoyage mémoire automatique ?
    Bonjour,
    J'ai un petit soucis, j'ai créer un service avec un Location Manager qui envoie les coordonées GPS toute les 5 minutes et un listener sur le GPS. Le timer du service sert juste à garder le service en vie et savoir si listener est !=null, ce qui est le cas.

    Mais au bout d'un moment qui est variable, il y a uniquement la fonction run() du service qui tourne. Mon listener ne fonctionne plus et n'est pourtant pas égal à null ....

    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    public int onStartCommand() { 
     
    onLocationChange=new LocationListener() //private onLocationChange
    	 {
    		public void onLocationChanged(Location location) {
    				// TODO Auto-generated method stub
    				envoieCoordonées();
                     }
     
                     public void onProviderDisabled(String provider) {
    				// TODO Auto-generated method stub
    				Log.d(TAG,"GPS STATUS OFF");
    				notificationGPSOFF("Le GPS est inactif");
    		}
     
     
    		public void onProviderEnabled(String provider) {
    				// TODO Auto-generated method stub
    				Log.d(TAG,"GPS STATUS ON");
    				notificationGPSON("GPS est activé");
    		}
     
    		public void onStatusChanged(String provider, int status, Bundle extras) {
    					// TODO Auto-generated method stub
    					Log.d(TAG,"GPS STATUS CHANGE");
    				}
    };
    //private static LocationManager lm 
    lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    				 lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, DELAI_GPS,0, onLocationChange);
    				lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, DELAI_GPS,0,onLocationChange);
    timer.scheduleAtFixedRate(new TimerTask() { 
    			        public void run() {
    			        	Log.d(TAG,"onLocationChange : " + onLocationChange!=null);
     
    			        } 
    			    }, 0, 5*60000);//5 minutes 
     
    			    return START_NOT_STICKY; 
    			}
    Voila pour le code. Et du coup, on bout d'un moment je n'est plus les logs de la fonction envoieCoordonées() mais juste le log de la fonction run(). De plus toute les opérations pouvant générer une exception sont entouré de try/catch avec log donc si le problème venait de la je le verrai mais ce n'est pas le cas car aucun log de ce type ne s'affiche.

    Merci de votre aide

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2012
    Messages : 20
    Par défaut
    j'ai réussi a peut près a contourner le problème en recréant ma variable tout les x passage dans la méthode run. Mais le téléphone coupe mon service à bout d'un certain temps, il n’apparaît plus dans les service en cours d’exécution ...

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 59
    Par défaut Thread ?
    Cette question m’intéresse car mon prochain projet comporte des similarités avec le tien (en gros recueillir les coordonnées gps à intervalles réguliers; le service étant contrôlé par une activité qui permettra via l'interface de le stopper et le lancer / ainsi que d'afficher différentes données cartographiques). Ton service est-il contrôlé par une activité ? Pourquoi utilises-tu un Timer plutôt qu'un runnable : il me semble que ce serait plus costaud...
    Prèt à partager idées en tout cas. Suis en phase de conception sur ce projet.
    Cordialement.

Discussions similaires

  1. Nexus et nettoyage de snapshots automatique
    Par bobuse dans le forum Maven
    Réponses: 1
    Dernier message: 24/01/2010, 20h27
  2. Nettoyage automatique de table SQL
    Par nicocomumumu dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 31/03/2009, 00h16
  3. nettoyage automatique de dossier temporaire
    Par Romain93 dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 23/04/2007, 17h39
  4. Réponses: 7
    Dernier message: 06/06/2006, 15h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo