Bonjour,

Après un petite recherche sur le net, je n'ai pas trouver de résolution a mon code.

mon application, pour lancer mon service fait appel a un BroadCastReceiver,

Afin que mon service tourne périodiquement.

ma question est la suivante, comment stopper mon service et par la même occasion mon BroadCastReceiver..?

mon code de 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);
et aussi mon BroadCastReceiver qui fait de nouveau appel au même BroadCastReceiver:

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
 
public class AlarmReceiver extends WakefulBroadcastReceiver {
 
    @Override
    public void onReceive(final Context context, Intent intent) {
 
        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,1);//Fiveteen minutes to send a event BroadcastReceiver
        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
                6000, pendingIntent);
        Intent background = new Intent(context, MyServiceTask.class);
        context.startService(background);
    }
}
Du coup je voudrait avec un switch stopper ou lancer mon service:

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
 
stopMyServiceTask.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
 
            @Override
            public void onCheckedChanged(CompoundButton buttonView,
                                         boolean isChecked) {
 
                if(isChecked){
                    startAlarmManager();
 
                }else{
                    stopAlarmManager();
                }
 
            }
        });
Merci pour vos réaction