2017-01-30 5 views
1

Meine Android-Anwendung startet einen lokalen Vordergrund-Service (im gleichen Prozess wie meine Aktivität). Das System zerstört jedoch die Aktivität aufgrund geringer Speicherkapazität, der Vordergrunddienst bleibt jedoch aktiv.Starten Android-Aktivität in bestehenden Prozess

Wenn der Benutzer die App das nächste Mal startet, wird ein neuer Prozess gestartet. Gibt es eine Möglichkeit, dass mein vorhandener Vordergrunddienst an diesen neu erstellten Prozess gebunden ist und nicht an den alten, zerstörten Prozess?

Eine Option, die ich dachte, ist, Interprozesskommunikation, die ich vermeiden möchte aufgrund der hohen Komplexität. Gibt es einen anderen Weg?

+1

"es startet einen neuen Prozess" - nicht normalerweise. Der einzige Grund, warum es das tun würde, ist, wenn Sie die Attribute "android: process" in Ihrem Manifest verwenden. Wenn Sie es sind und Sie nicht wollen, werden Sie sie los. – CommonsWare

Antwort

0

Danke CommonsWare für ein Stichwort.

Von documentation:

Standardmäßig werden alle Komponenten des gleichen Anwendungslauf in dem gleichen Prozess und Thread (der "Haupt" Thread genannt). Wenn eine Komponente der Anwendung gestartet wird und bereits ein Prozess für diese -Anwendung existiert (weil eine andere Komponente aus der Anwendung existiert), wird die Komponente innerhalb dieses Prozesses gestartet und verwendet denselben Ausführungs-Thread.

Es verhält sich wie erwartet. Ich bin Anfänger in der Android-Entwicklung und wusste das nicht.

Das zweite Mal habe ich Anwendung als Debug von Android Studio gestartet und es Prozess neu erstellt. Deshalb bin ich verwirrt worden.

Verwandte Themen