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 :

Timer inactif dans un service


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 6
    Par défaut Timer inactif dans un service
    Bonsoir à tous

    J'ai créé un service avec un timer :

    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
     
     
    public class SendMailService extends Service {
    	Timer timer;	
     
     
    	@Override
    	public IBinder onBind(Intent intent) {
    		return null;
    	}
     
    	@Override
    	public void onCreate() {
    		Toast.makeText(this, "SendMailService Created", Toast.LENGTH_LONG).show();
    	}	
     
    	@Override
    	public void onDestroy() {
    		Toast.makeText(this, "SendMailService Stopped", Toast.LENGTH_LONG).show();
    	}	
     
    	@Override
    	public void onStart(Intent intent, int startid) {
    		Toast.makeText(this, "SendMailService Started", Toast.LENGTH_LONG).show();
    	        timer = new Timer();
    	        timer.schedule(new TimerTask() {
            	@Override
            	public void run() {
            		getMail();
    	        	}
    	        },0,10000);
    	}	
     
    	public void getMail() {
    		//do something
    	}

    Que je déclenche depuis mon application :

    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
     
    public class SendMail extends Activity {
    	Button EmailButton;
     
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
     
            EmailButton =(Button) findViewById(R.id.StartEmail);
            EmailButton.setOnClickListener(new OnClickListener() {
    			@Override
    			public void onClick(View v) {
    	     		      startService(new Intent(SendMail.this,SendMailService.class));
         		   }
     
     
    			}
            });
    }

    ça compile, ça s'execute, normalement le timer devrait déclencher un getMail toutes les 10 secondes, mais il n'en n'est rien.

    Je ne comprends pas.

    Portant j'ai suivi les indications trés claires d'ici :
    http://blog.developpez.com/android23...on-de-service/

    Une idée ?

    Merci

  2. #2
    Membre très actif Avatar de _Xavier_
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2009
    Messages : 311
    Par défaut
    Et si tu mets le code métier dans onStartCommand() comme indiqué dans le lien ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 6
    Par défaut
    Je viens d'essayer onstartcommand, pareil (heu code métier ?)

    merci

    Citation Envoyé par _Xavier_ Voir le message
    Et si tu mets le code métier dans onStartCommand() comme indiqué dans le lien ?

  4. #4
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 2
    Par défaut Problème timer
    Bonjour. je voulais savoir si tu avais résolu ton problème. J'essaie aussi de me servir d'un timer. Je veux qu'il se répète à un intervalle de temps régulier. Cela marche mais il ne se répète pas à un intervalle de temps régulier.

    Voilà mon bout de code avec le timer, il est utilisé dans un service.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public int onStartCommand(Intent intent,int flags,int startId){
     
    int time =  60 * 1000;	
    timer.scheduleAtFixedRate(new TimerTask() {
           public void run() { 
    	  / action à effectuer - j'ai pas mis le code 
    	    }, 0, time); 
    		return Service.START_NOT_STICKY;
    }
    J'ai aussi timer.cancel(); dans la méthode onDestroy de mon service. Merci!

Discussions similaires

  1. Timer dans un service windows pour création d'un serveur
    Par amine_taz dans le forum PureBasic
    Réponses: 1
    Dernier message: 24/02/2014, 12h34
  2. [Débutant] Exécution d'un timer dans un service
    Par AhmedZineb dans le forum VB.NET
    Réponses: 9
    Dernier message: 03/04/2013, 16h47
  3. Problème de timer dans un service window
    Par EmacLi dans le forum Services Windows
    Réponses: 5
    Dernier message: 10/01/2011, 11h43
  4. timer dans un service windows
    Par yochima dans le forum C#
    Réponses: 5
    Dernier message: 20/08/2009, 10h57
  5. Timer inopérant dans service windows
    Par pdgnr dans le forum Windows Forms
    Réponses: 7
    Dernier message: 01/05/2008, 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