2012-03-24 14 views
0

Ich habe einen Dienst, der auch eine Aktivität enthält. Das Problem ist manchmal, dass es vom Betriebssystem heruntergefahren wird. Wie kann ich das verhindern?Android-Dienst unerwartet beendet

+1

starten Sie es nicht an erster Stelle. Oder sei genauer/zeige etwas Code =). – FoamyGuy

Antwort

1

nicht sicher, was Sie unter "Dienst, der eine Aktivität enthält" verstehen.

Das Betriebssystem kann und wird Dienste herunterfahren basierend auf der Nachfrage nach Speicher. Wie oft das passiert, hängt davon ab, was auf Ihrem Gerät ausgeführt wird und wie viel Speicher Ihr Gerät hat.

zu versuchen, dies zu minimieren, können Sie Service anrufen. startForeground(). Bitte lesen Sie die Javadocs für die ordnungsgemäße Verwendung und schauen Sie sich auch stopForeground() an.

beachten Sie, dass dies noch keine Garantie ist. Sie müssen Ihre App so konfigurieren, dass sie ordnungsgemäß behandelt wird, wenn Ihr Dienst zerstört wird. Bitte lesen Sie den Lebenszyklus Service, um zu verstehen, wie Sie damit umgehen.

Selbst wenn Sie Ihren Dienst jederzeit aufrecht erhalten könnten, wäre das eine schlechte Idee. Dies ist kein an den Wechselstrom angeschlossener PC. Ein Dienst, der ständig ausgeführt wird, hat großen Einfluss auf die Akkulaufzeit des Geräts.

0

Es macht keinen Sinn, dass Sie einen Dienst haben, der eine Aktivität enthält. Sie können einen Dienst haben, mit dem eine Aktivität verbunden ist, aber keine, die eine Aktivität enthält. Dienste können zusammen mit dem Rest Ihrer App jederzeit vom Android-Betriebssystem deaktiviert werden und werden wiederhergestellt, wenn der Benutzer zu ihnen zurück navigiert. Stattdessen müssen Sie Ihre App so gestalten, dass sie für diese Lebenszyklusereignisse tolerant ist und nicht für immer aufbewahrt werden muss.

0

AFAIK, ein Service oder eine Aktivität kann nicht garantiert werden, die ganze Zeit zu laufen. Sie müssen die Lebenszyklusereignisse des Dienstes wie Herunterfahren und Starten behandeln.

Verwandte Themen