Ich versuche ein BroadcastReceiver
innerhalb eines zu starten Service
. Ich versuche, einen Hintergrund zu service
erstellen, der eingehende Textnachrichten sammelt und eingehende Telefonanrufe protokolliert. Ich dachte, der beste Weg, dies zu tun, ist ein service
Lauf, der einen Rundfunkempfänger enthält, der entweder katalogisieren kann.
Wie mache ich das? Ich habe meinen Dienst bereits in Betrieb.
android
sms
broadcastreceiver
android-service
Utopia025
quelle
quelle
Das bessere Muster besteht darin, ein eigenständiges Muster zu erstellen
BroadcastReceiver
. Dies stellt sicher, dass Ihre App auf die Sendung reagieren kann, unabhängig davon, ob die Sendung ausgeführt wird oder nichtService
. Tatsächlich kann die Verwendung dieses Musters die Notwendigkeit eines konstanten LaufensService
insgesamt beseitigen.Registrieren Sie das
BroadcastReceiver
in Ihrem Manifest und erstellen Sie eine separate Klasse / Datei dafür.Z.B:
Wenn der Empfänger läuft, übergeben Sie einfach ein
Intent
(Bundle
) an dasService
und antworten darauf inonStartCommand()
.Z.B:
quelle
Service
wenn es nicht bereits ausgeführt wurde, oder ein neues übergeben,Intent
wenn dies der Fall ist (zum Abrufen inonStartCommand
). Wenn Sie möchten, dass es nur ausgeführt wird, wenn es aktivService
ist, können Sie dieReceiver
Komponente programmgesteuert über diePackageManager
's aktivieren / deaktivierensetComponentEnabledSetting()
.Receiver
Leben wollen , wenn dasService
läuft.