Um zu vermeiden, eine persistente Caching-Logik eines ganzen Navigations-Stack zu implementieren Ich möchte meine App "lebendig" (mindestens für 2 Stunden) auch im Hintergrund, wenn der Benutzer wieder öffnet Die App ist, wo es war, bevor Sie schlafen gingen.Verhindern, iOS nach 3 Minuten meine App zu töten
Ich habe versucht, mit einer Hintergrundaufgabe:
_timerBackgroundTaskId = UIApplication.SharedApplication.BeginBackgroundTask(() =>
{
// Run some dummy code here. Shouldn´t this prevent the task from actually stopping?
var remaining = UIApplication.SharedApplication.BackgroundTimeRemaining;
this.Log().Debug($"Expiration. Remaining: {remaining}. Timer seconds left: {_secondsLeft}");
});
// I´m actually using the timer for something :)
_nsTimer = NSTimer.CreateRepeatingScheduledTimer(TimeSpan.FromSeconds(1), delegate { TimerTick(); });
// later on (after 3 minutes)
UIApplication.SharedApplication.EndBackgroundTask(_timerBackgroundTaskId.Value);
Egal, was ich versuche, nach 3 Minuten iOS die App tötet. Einige Antworten in SO sagen, wie man es mit einem gefälschten/stillen Hintergrundsound macht, aber ich will keine Probleme mit Apple Reviews haben.
Irgendwelche Ratschläge?
Es ist besser, App-Wiederherstellung richtig zu behandeln, anstatt etwas zu versuchen und zu tun. Ihre App hat nur 3 Minuten Hintergrund-Ausführungszeit. Die Einschränkungen dienen dazu, die Akkulaufzeit zu maximieren und Speicher für andere Apps verfügbar zu machen, die der Benutzer ausführen möchte. – Paulw11
Wiederherstellung ist das, was ich zu vermeiden versuche, aber ich werde es tun, wenn es keinen anderen Weg gibt. – xleon
Die drei Minuten sind ein hartes Limit, es sei denn, Ihre App verwendet legitim einen der verfügbaren Hintergrundmodi. – Paulw11