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é:
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 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);
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
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); } }
Merci pour vos réaction
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(); } } });![]()
Partager