1

Mein Receiver Deklarieren wird auf diese Weise erklärt:Empfänger und Dienstleistungen auf dem Manifest

<receiver android:name=".receiverName" 
android:enabled="true"/> 

Und hier ist mein Service:

<service android:name=".serviceName" 
android:enabled="true"/> 

Aber ich habe mich gefragt: sie Arbeit zu machen, muss ich hinzufügen, eine <intent-filter> in Jeder?

Antwort

1

um sie arbeiten muss ich eine <intent-filter> in jedem hinzufügen?

Das hängt davon ab, wofür Sie sie verwenden.

Ein <intent-filter> ermöglicht es anderen Apps oder manchmal auch dem Betriebssystem, mit Ihren Komponenten zu kommunizieren. Deshalb haben Sie eine <activity> mit einer für die MAIN Aktion und die LAUNCHER Kategorie — Home-Bildschirm-Launcher wissen, um diese zu suchen und geben Sie dem Benutzer die Möglichkeit, diese Aktivitäten anzuzeigen.

Also, wenn Ihr Plan ist, den Service rein in Ihrer eigenen App zu verwenden, benötigen Sie keine <intent-filter>. Das Gleiche gilt für Ihren Empfänger. Wenn Sie andererseits erwarten, dass andere Apps den Dienst starten, sich an den Dienst binden oder Ihnen eine Rundsendung senden, benötigen Sie eine <intent-filter>.

+0

Ich mache eine Erinnerung App, so habe ich viele Alarme mit 'AlarmManager' eingestellt; Wenn der Alarm ausgelöst wird, sendet er die Absicht an einen "BroadcastReceiver", der einen Dienst startet. Also muss ich keinen ' hinzufügen, habe ich recht? – DISSENNATORE

+1

@DISSENNATORE: Korrigieren. Normalerweise verwenden Sie einen 'PendingIntent' mit' AlarmManager'. Dadurch kann der Teil von Android, der diese Alarmereignisse verwaltet, immer noch mit Ihrem Empfänger sprechen, auch wenn Sie keinen '' haben. – CommonsWare

+0

Vielen Dank, vielleicht war diese Frage dumm, aber Ihre Antwort war sehr hilfreich für mich – DISSENNATORE