Nach der documentation of WKExtension, gibt es eine integrierte Methode, um zu prüfen, ob eine App die vorderste App ist oder nicht. Selbst die WKApplicationState
enum doesn't have ein Fall für die Bestimmung, ob Ihre App die vorderste App ist oder nicht.
Wenn eine App zur führenden App wird (direkt nachdem der Benutzer das Handgelenk gesenkt hat, während die App im Vordergrund läuft), wechselt die App kurz in den Hintergrundmodus und wird dann vom Design deaktiviert. Es ist also das erwartete Verhalten, dass die Systemfunktionen applicationWillResignActive()
und applicationDidEnterBackground()
aufgerufen werden, da die Anwendung tatsächlich in den Hintergrundmodus wechselt.
In watchOS3
hat die Vordergrund-App keine Vorteile, die Entwickler anders nutzen könnten als die Tatsache, dass das System den App-Status für die Vordergrund-App automatisch wieder einnimmt.
In watchOS 4 sind die vorderste app Gewinne die folgenden zusätzlichen Vorteile:
- Kann haptisches Feedback aus dem Hintergrund spielen.
- Wakes aus dem Hintergrund, um Benachrichtigungen zu erhalten.
- Wakes sofort nach Abschluss einer Hintergrundübertragung von einer URLSession-Task oder Watch Connectivity-Sitzung.
- Erhält erhöhte Laufzeitpriorität, wenn die Methode
performExpiringActivity(withReason:using:)
des ProcessInfo-Objekts zum Ausführen von Aufgaben im Hintergrund verwendet wird.
Meinst du, check ist die Watch App läuft im _foreground_? Es gibt keine App, die sich "vorne" befindet. Außerdem kann das, was Sie in Ihrer Frage sagen, nicht passieren. Beide Methoden werden aufgerufen, wenn die App in den _background_-Modus wechselt. Müssen Sie also vor dem Wechsel in den Hintergrundmodus oder vor dem Wechsel in den Vordergrundmodus etwas Code ausführen? –
Natürlich gibt es einen vordersten Zustand (wenn Sie wachen, wird das Gesicht inaktiv sein und wenn Sie zurück drehen, wird es die letzte Anwendung erscheinen). Frontmost ist weder Hintergrund noch Vordergrund. –
Mein Schlechter, es gibt tatsächlich eine [vorderste App] (https://developer.apple.com/documentation/watchkit/wkextension), aber es kann immer nur eine Front-App geben, also gibt es kein "in erster Linie". –