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?