Ich mache eine Android-App, die erfordert, ihren Standort häufig alle 1 Minute oder 2 Minuten zu senden. Dafür benutze ich eine JobSchedulerService
. Ich habe es bereits geschafft, es mehr als einmal alle 15 Minuten auf Geräten mit Android N version
durch den Austausch der .setPeriodic()
durch eine .setMinimumLatency()
laufen zu lassen. Tatsache ist, dass es zu Beginn in der festgelegten Zeit periodisch ausgeführt wird, aber nach einer Weile läuft es alle 7 oder 9 Minuten ungefähr.Wie starte ich einen Jobscheduler oder einen Service jede Minute ohne anzuhalten?
Ich habe bereits die Anwendung in der Batterie speichern weiße Liste enthalten, hat aber nicht funktioniert. Gibt es irgendeine Möglichkeit, es oder eine ähnliche Dienstleistung jede Minute ohne Einschränkungen auszuführen? Es spielt keine Rolle, wie viel Akku die App ausgibt.
EDIT:
Dies ist, was ich versucht habe:
ReceiverService:
public class ReceiverService extends WakefulBroadcastReceiver {
@Override
public void onReceive(Context ctx, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
if (!isMyServiceRunning(ServiceBackground.class, ctx))
startWakefulService(ctx, new Intent(ctx, ServiceBackground.class));
new ServiceAlarmManager(ctx).register();
}
}
private boolean isMyServiceRunning(Class<?> serviceClass,Context context) {
ActivityManager manager = (ActivityManager)context. getSystemService(Context.ACTIVITY_SERVICE);
for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (serviceClass.getName().equals(service.service.getClassName())) {
Log.i("Service already","running");
return true;
}
}
Log.i("Service not","running");
return false;
}
}
Die ServiceAlarmManager
ist genau das gleiche wie @madking sagte.
Das ist wirklich furchtbar Übung. Lass das Gerät bitte schlafen. – Vyacheslav
was Sie wollen, ist nicht möglich –
Es kann nicht unmöglich sein, es ist mir egal, wenn es eine schreckliche Praxis ist, weil das Gerät wird geladen, die Priorität ist Ort zu senden jede Minute, nicht die Batterie – smartgg