[service] debuger mon service
Bonjour à tous,
Je suis assez nouveau dans le dev Android.
et je travail sur un service. J'ai le choix a utiliser startService(..) ou bindService(..).
Une première question est laquelle de ces actions pour lancer un service dois-je utiliser?
Ensuite mon service est lancer avec startService(..) pour le coup cela fonctionne assez bien.
Donc comme je disait j'ai lancer mon service a partir de mon activité dans un AlarmManager.
Et a un moment ou a un autre de doit stopper mon service .
Je fait donc stopSelf() dans mon service.
Mais mon activité est stopper également..
Une solution a cela m'aiderait beaucoup.
Je vous met le code:
Mon Activité:
Code:
1 2 3 4 5 6 7 8 9 10
|
Intent myIntent = new Intent(this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, myIntent, 0);
AlarmManager alarmManager = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.MINUTE,1);//one minute for launching service
//alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, 6000, pendingIntent);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
6000, pendingIntent); |
Ma routine pour lancer mon service (MyServiceTask):
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
Intent myIntent = new Intent(context, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, myIntent, 0);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.MINUTE,2);//Fiveteen minutes to send a event BroadcastReceiver
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
6000, pendingIntent);
PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
Intent background = new Intent(context, MyServiceTask.class);
context.startService(background); |
Et dans mon service a un moment je fait:
Code:
MyServiceTask.this.stopSelf();
Une petite aide .. Merci pour vos réactions.
[Update] Une souci résolu..
J'ai relis mon code et j'ai trouvé le souci..
dans mon onDestroy() de mon service
j'ai fait un cancel de locationListener:
Code:
1 2 3
|
lm.removeUpdates(this);
lm = null; |
du coup si je fais un remove.. ca plante et je reviens vers mon activité précédente.
[Service] Location Listener
Bonjour Grunk,
Merci pour ta réaction.
Mon Service lui ne communique pas avec l'activité.
C'est donc la première proposition qui est a utilisé.
Pour killer le LocationListener je fais comment du coup?
Merci
[Service] Location Listener details
oui, exactement.
mon service implémente l'interface LocationListener et récupère la position de l'utilisateur.
je stoppe mon service et du coup je voudrait stopper la localisation aussi..
en dehors du fait que si je stoppe le service cela stoppe aussi la localisation?
Merci.
[Question ?] LocationListener
Bonjour,
Je post ce message pour que m'éclairé sur le fonctionnement de la localisation sous android.
je fait une requête toute 15 minutes.
Après avoir reçu un localisation Fine donc très précise,
la mesure suivante me localise après déplacement de quelque kilomètres,
m'indique toujours ma localisation précédente.
Je sais pas pourquoi mais cela se résout tous seul.
Mais cette situation est quand même problématique
et j'espère résoudre cela avec vous.
J'attends vos réaction et je poste le code également:
Code:
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 400, 1, this);