Ich benutze AlarmManager
, um den Dienst alle 1 Minute zu starten, um einige Hintergrundjobs auszuführen.Hintergrundjob alle 1 Minute, Dienst, sollte ich `stopSelf()` aufrufen?
Hier ist Code-Schnipsel:
Intent intent = new Intent(context, PostLocationService.class);
PendingIntent pendingIntent = PendingIntent.getService(context, POST_LOCATION_REQUEST_CODE, intent, 0);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.setInexactRepeating(
AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + TEN_SECONDS_INTERVAL,
ONE_MINUTE_INTERVAL, pendingIntent);
PostLocationService
erstreckt Service
. In onStartCommand()
mache ich einen Job und rufe stopSelf()
, nachdem dieser Job erledigt ist.
Aber ich weiß, dass, wenn dieser Dienst noch läuft, das nächste Mal nach Erhalt der Absicht onStartCommand()
wird erneut ausgeführt werden und benötigte Arbeit wird erledigt sein.
Was ist die beste Vorgehensweise hier: Starten Sie alle 1 Minute einen neuen Dienst oder lassen Sie einen Dienst laufen und warten auf Intents?
Ich habe meine Antwort hinzugefügt, Bitte lassen Sie mich wissen, wenn Sie weitere Informationen wünschen. –