Bonjour,
je suis en train de mettre en place un service qui démarre au boot du mobile et effectue une tâche tout les X secondes.
Je me retrouve donc avec un Timer prenant en paramètre un TimerTask qui surcharge la méthode run. Dans celle-ci je souhaite afficher un toast à chaque interval.
J'ai donc crée une classe qui hérite de TimerTask et qui surcharge run(). Dans le constructeur de cette classe, je chope un context.
Mais que je mette BackgroundService.this ou getApplicationContext() mes toast ne s'affiche pas ...
Appel du constructeur depuis ma classe héritant de Service:
Ici que je mette BackgroundService.this ou getApplciationContext c'est la même !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 @Override public int onStartCommand(Intent intent,int flags,int startId){ Log.i("","## --- Service Started --- ##"); timer.scheduleAtFixedRate(new BackgroundServiceTimer(BackgroundService.this,db), 0, 10000); return START_STICKY; }
Méthode Run surchargé :
Ici les logs ne s'affiche pas quand je laisse le toast, si je l'enlève les Log s'affiche bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 @Override public void run() { CharSequence text = "SMS launched"; int duration = Toast.LENGTH_LONG; Toast toast = Toast.makeText(this.context, text, duration); Log.i("TEST","// ------------------------------------------------------ //"); Log.i("TEST","//---------------------- TOAST ! -------------------------//"); Log.i("TEST","// ------------------------------------------------------ //"); toast.show(); }
Voilà j'arrête pas de bloquer sur des trucs qui je pense sont tout bête mais je ne perds pas espoir !
merci d'avance !
Partager