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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
MyServiceTask.this.stopSelf();
Une petite aide .. Merci pour vos réactions.