8 Stimmen

Android: Ist es besser, einen Dienst jedes Mal zu starten und zu stoppen, wenn er benötigt wird, oder einen Dienst laufen zu lassen und sich an ihn zu binden und die Bindung zu lösen?

Ich entwickle eine Anwendung, die mehrere Bedingungen während eines eingehenden Anrufs überprüft. Die Hauptbestandteile der App sind ein BroadcastReceiver, der auf Intents im Zusammenhang mit dem Status des Telefons wartet, und ein lokaler Dienst, der die Bedingungen überprüft.

Im Moment wird der Dienst jedes Mal gestartet, wenn ein eingehender Anruf erkannt wird, und wird beendet, wenn der Telefonstatus wieder in den Ruhezustand wechselt.

Nun frage ich mich, ob dieses Verfahren korrekt ist und ob es sinnvoll ist, den Dienst in Bezug auf den Status des Telefons zu starten und zu beenden. Oder wäre es besser, den Dienst unabhängig vom Status des Telefons laufen zu lassen und sich bei Bedarf an ihn zu binden/von ihm zu lösen.

Gibt es irgendwelche Leistungsprobleme, die ich berücksichtigen müsste? Vielleicht ist es teurer, einen Dienst zu starten/stoppen, als ihn laufen zu lassen und mit ihm zu kommunizieren. Gibt es bewährte Verfahren für die Implementierung von Diensten?

5voto

CommonsWare Punkte 950864

Oder wäre es besser, die Dienst unabhängig vom Status des Telefons laufen zu lassen Status des Telefons laufen zu lassen und ihn bei Bedarf benötigen.

Bitte lassen Sie das. Es wird nur unnötig RAM verbrauchen. Es sind die ewigen Dienste wie diese, die die Benutzer dazu bringen, die Entwickler mit Task-Killern anzugreifen.

Gibt es bewährte Praktiken da draußen? für die Implementierung von Dienstleistungen?

Hier sind zwei meiner Beiträge zu diesem Thema, wenn sie etwas wert sind.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X