Ich habe einen Dienst, der im selben Prozess ausgeführt wird.Dienst überlebt die übergeordnete Anwendung auf Google Glass?
<service
android:name=".service.GlassService"
android:exported="true"
android:label="@string/app_name" />
Ich starte den Dienst mit startService().
startService(new Intent(this, GlassService.class));
Wenn ich nach unten wischen, und beenden Sie die Anwendung, Service Leben auf. Wenn ich es von DDMS kill, Service ist neu gestartet, Anruf Service mit START_STICKY
noch START_NOT_STICKY
machen keinen Unterschied.
Die einzige Möglichkeit, den Dienst zu stoppen, ist, wenn ich explizit stopService() oder stopItself() aufrufen oder startService() weglassen.
Dies ist bei anderen Android-Geräten nicht der Fall. Ist dieses Verhalten typisch für Google Glass?
Auf unseren Nicht-Glas-Geräten wurde der Dienst immer beendet, wenn wir die Anwendung verließen (onDestroy() wurde aufgerufen), egal was wir getan haben. Unser Verständnis war, dass der Dienst implizit im selben Prozess läuft (nicht isoliert ist) wie die Anwendung. Wenn die Anwendung beendet wird, stirbt der Dienst. In der von Ihnen geposteten Referenz finde ich nichts über die Anwendung, die den Service überlebt. Kannst du explizit auf den Teil hinweisen, über den du gesprochen hast? – jellyfication
Es gibt keinen zu erwartenden Verhaltensunterschied zwischen der Lebensdauer von Glas- und Nichtglas-Service. Was meinst du mit "wenn wir [die] Anwendung verlassen"? Kannst du bitte genauer sagen, was du damit auf Glas und Nicht-Glas meinst? Eine "Anwendung" endet erst, wenn alle Aktivitäten/Fragmente/Dienste/Threads gestoppt sind. Wenn Sie die Zurück-Taste drücken oder nach unten streichen, sollte die "Anwendung" nicht verlassen werden, wenn ein Dienst noch läuft. Ist es möglich, dass sich Ihre Live Card-Service-Implementierung von der Service-Implementierung Ihrer Nicht-Glass-App unterscheidet? – swooby