Bonjour à tous,
- J'ai un service qui est lancé au login du user dans l'application.
- ce service tourne donc continuellement (dans le but d'updater la position GPS toutes les deux heures)
- ce service, une fois lancé, doit se relancer automatiquement lors du redemarrage du telephone
j'ai donc dans le manifest :
et un alarm manager tel que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <!-- Handling regular location update --> <receiver android:name="trucmuche.location.LocationAlarmReceiver" android:process=":remote" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" > </action> </intent-filter> </receiver> <service android:name="trucmuche.location.LocationService" />
Je cherche à verifier que ce service est correctement relancé au Reboot du device, le problème est que je ne peux logger cela car quand j'eteint mon device puis le rallume, mon logcat est juste cleared...
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
19
20
21
22
23
24
25
26
27
28
29
30 public class LocationAlarmReceiver extends BroadcastReceiver { private void cancelAlarm(Context context) { AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); alarmManager.cancel(createPendingIntent(context)); } private static PendingIntent createPendingIntent(Context context) { Intent i = new Intent(context, LocationAlarmReceiver.class); PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0); return pi; } public void setAlarm(Context context) { AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); am.setInexactRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(), Config.TIME_BETWEEN_LOCATION, createPendingIntent(context)); } @Override public void onReceive(Context context, Intent intent) { if (intent != null && "android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) { setAlarm(context); } else { context.startService(new Intent(context, LocationService.class)); } } }
une petite idée pour me permettre de tester cela facilement et verifier que le service se relance bien au reboot? (les logs d'appels WS n'etant pas une option viable étant donné qu'ils sont "externes")
D'avance merci,
cordialement,
Partager