[Android] Stopper un service et un AlarmReceiver
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:
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:
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:
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 ;)