2016-08-16 2 views
0

Da der Apfel doc ziemlich vage über this point:CoreBluetooth Hintergrundausführung 10sec?

Upon being woken up, an app has around 10 seconds to complete a task 

Dies bedeutet, dass die App nach 10 Sekunden wird auf seinen „suspendiert“ Zustand zurückgehen? Ist es theoretisch möglich, dass die App nach diesen 10 Sekunden "wach" bleibt? (private App).

In meinem Fall würde das Gerät an ein Auto angeschlossen werden.

Antwort

1

Bedeutet das, dass die App nach 10 Sekunden wieder in den "suspended" -Zustand zurückkehrt?

Wenn Sie sorgfältig lesen:

Nach aufgeweckt werden, die App hat etwa 10 Sekunden, um die Daten zu verarbeiten. Im Idealfall sollte es die Daten so schnell wie möglich verarbeiten und sich wieder suspendieren lassen. Wenn jedoch mehr Zeit benötigt wird, kann die App die beginBackgroundTaskWithExpirationHandler-Methode verwenden: Methode , um zusätzliche Zeit anzufordern; es sollte nur dann tun, wenn absolut notwendig ist.

Anwendungen allgemein wach von Background-Modi (wie Standortdienst, Audio, Push-Benachrichtigung und so weiter), und für einige Modi wie Standortdienst wird er wach bleiben, bis die Ortsdaten werden erfasst und für einige, es doesn‘ Ich bleibe lange wach wie Push-Benachrichtigungen. Es hängt also von der Aufgabe ab, die ausgeführt wird. Wenn Bluetooth mit einem anderen Bluetooth-Gerät verbunden ist, bleibt es wach.

Theoretisch ist es möglich, die App zu "zwingen", nach diese 10 Sekunden wach zu bleiben? (private App).

Ja, es ist möglich.

Jede der vorhergehenden Modi lässt das System wissen, dass Ihre App geweckt werden oder zu einem geeigneten Zeitpunkt gestartet sollten relevante Ereignisse zu reagieren. Beispiel: Eine App, die mit der Wiedergabe von Musik beginnt und dann die in den Hintergrund verschiebt, benötigt noch eine Ausführungszeit, um die Audioausgabe Puffer zu füllen. Die Aktivierung des Audio-Modus teilt den System-Frameworks mit, dass sie weiterhin die erforderlichen Rückrufe an die App unter entsprechenden Intervallen vornehmen sollten. Wenn die App diesen Modus nicht auswählt, wird jedes von der App wiedergegebene oder aufgenommene Audio angehalten, wenn die App in den Hintergrund wechselt.

Hinweis: Wenn Sie es für Ihre private App benötigen, können Sie dies überprüfen here. Ihre App wird abgelehnt, wenn Sie die Lösung hinzufügen und Appstore beantragen.

+0

Von meinen Tests gibt es keine Garantie, dass iOS Sie sogar länger als 10 Sekunden laufen lässt. Ich würde das im Hinterkopf behalten. – Anton

0

Versuchen Sie folgendes:

[[UIApplication sharedApplication] setIdleTimerDisabled:YES]; 
0

In XCode, gehen Sie zu Ihrem Ausbau-> Capabilities-> Hintergrund-Modi und die Background-Modi On markieren. Mark Verwenden auch Bluetooth LE Zubehör:

enter image description here

Apps, die mit Bluetooth-Peripheriegeräten arbeiten fragen, aufgeweckt, wenn die peripheren Update liefert, wenn die App ausgesetzt. Diese -Unterstützung ist wichtig für Bluetooth-LE-Zubehör, das Daten in regelmäßigen Abständen, wie zum Beispiel einen Bluetooth-Herzfrequenzgurt, an die liefert. Sie aktivieren Unterstützung für die Verwendung von Bluetooth-Zubehör aus den Hintergrundmodi Abschnitt der Registerkarte Funktionen in Ihrem Xcode-Projekt. (Sie können auch diese Unterstützung aktivieren, indem Sie den UIBackgroundModes-Schlüssel mit dem Bluetooth-Zentralwert in die Info.plist-Datei Ihrer App einfügen.) Wenn Sie diesen Modus aktivieren, werden alle aktiven Sitzungen für das entsprechende Peripheriegerät vom Core Bluetooth-Framework geöffnet . Darüber hinaus neue Daten von der Peripherie ankommen bewirkt, dass das System die App so aufwecken , dass es die Daten verarbeiten kann. Das System weckt auch die App auf Prozess Zubehör Verbindung und Trennung Benachrichtigungen.

Für weitere Einzelheiten können Sie sich beziehen Apple documentation.

+0

Danke für Sie antworten @Sunil Sharma. Derzeit bezieht sich das Beispiel auf ein Zubehörteil, das Daten wie einen Herzmonitor sendet, ich habe vergessen, es zu präzisieren, aber in meinem Fall wäre das Gerät mit einem Auto verbunden. das funktioniert noch? Und das Doc-Gespräch über wachte die App auf, aber es ist auch präzise als wir haben ein Fenster von 10 Sekunden, um das Ereignis zu behandeln, nach diesen 10 Sekunden, die App zurück in den Ruhezustand? –

+0

Ja, es funktioniert immer noch, Sie müssen nur ** Externe Zubehörkommunikation ** im Hintergrundmodus auswählen. –

Verwandte Themen