Ich habe eine App in PhoneGap eingebaut, die Aufrufe von navigator.geolocation
verwendet, um die Koordinaten des mobilen Geräts zu verfolgen. Der Benutzer hat die Kontrolle, das Tracking zu starten und es zu beenden. Die App wurde so erstellt, dass sie im Hintergrund Koordinatendaten erhält. Die App ist für Android- und iOS-Geräte freigegeben.
Die Android-Version scheint im Hintergrund zu stürzen. Bei einigen Handys funktioniert es gut, aber bei vielen von ihnen wird die App einfach absterben, während sie im Hintergrund Koordinatendaten sammeln soll. Ich habe unten ein LogCat-Log geschrieben. Es scheint, dass ein WIN DEATH auf dem CCWalkerActivity
kurz nachdem Activity
Manager auf dem Prozess "Nicht mehr wollen" ruft (beide sind unten fett geschrieben). Ich kann jedoch nicht feststellen, warum dies geschieht und warum es so häufig passiert.
Ist das ein Problem mit Phonegap? Wäre es hilfreich, ein Plugin zu erstellen, mit dem ein Vordergrund-Service (mit startForeground()
) verarbeitet werden könnte?
Wenn Ihr App-Prozess keine Aktivitäten im Vordergrund oder im Vordergrund hat, kann er vom System jederzeit beendet werden, um Speicherplatz für andere Apps freizugeben.
Wenn in Ihrem Fall Activity.onPause aufgerufen wurde, wenn die Nutzer Ihre App verlassen, indem sie beispielsweise die Home-Schaltfläche verwenden, kann Ihr App-Prozess jederzeit beendet werden.
Sie müssen einen Sortierservice einrichten, damit er auch dann ausgeführt wird, wenn Ihre App nicht ausgeführt wird. (Ihre App kann jederzeit beendet werden, wenn sie nicht im Vordergrund ist und das System Speicher benötigt).
Dazu müssen Sie systemeigenen Code schreiben (Java für Android-App). Sehen Sie im offiziellen Dokument nach, wie Sie einen Dienst oder ein Phonegap-Plugin schreiben können.
Tags und Links android cordova background-process geolocation