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é:
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):
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:
MyServiceTask.this.stopSelf();
Une petite aide .. Merci pour vos réactions.
Partager