Broadcast Reciever Lebenszeit wenn aus Service gestartet

FelixL

FelixL

Ehrenmitglied
821
Ich will ACTION_HEADSET_PLUG abfangen.
Erst hab ich's über einen statischen Broadcast-Reciever versucht (also übers xml registriert). Praktischerweise funktioniert dies aber nicht -.-:

[android-developers] Re: Capturing HEADSET_PLUG (android.intent.action.H
OK, after digging into the android system code, I think I figured out
what's wrong here... the class "HeadsetObserver" from the base system
actually sends out this intent with its FLAG_RECEIVER_REGISTERED_ONLY
flag set... obviously, there's no way to receive this intent without
implementing a service.

Sprich man muss das Ding über den Code anmelden (registerReceiver()).
Damit ich also jeden dieser Events abfange, muss ich nach dem Booten einen Service starten (soweit kein Problem) der dann den Receiver anmeldet, auf sich selbst. Jetzt ist die Frage was passiert wenn der Service beendet wird. Kommen die Events noch an, wird der Service quasi neu gestartet? Oder erzeuge ich einen Fehler? Darauf würde dieser Link hinweisen:
BroadcastReceiver on Service - Android Developers | Google Groups
I would instead suggest the service just make a BroadcastReceiver inner
class, which it explicitly registers in onCreate() with registerReceiver()
(and unregisterReceiver() in onDestroy() of course).

Wie stelle ich also sicher, das ich die Events alle empfange?

Danke, FelixL
 
Ich antworte mir mal selbst:
Service | Android Developers, int, int)
Damit kann ich festlegen, das ein Service, der vom System wegen Ressourcenmangel gekillt wurde wieder gestartet wird sobald Ressourcen frei sind.

Gibt es sowas ähnliches für APILevel<5? (Ich denke mal nicht -.-)
Unnd noch eine Offtopic-Frage:
Wenn das Gerät schläft und jemand das Headset rauszieht, wird es dann geweckt und der Broadcast kommt bei mir an?

Edit: Mal ganz nebenbei ist ein ständig laufender Service sowieso nicht Best-Practice, das ist mir klar ;)
Auch wenn er nur im RAM rumliegt.
 
Zuletzt bearbeitet:

Ähnliche Themen

R
  • Robby1950
2
Antworten
23
Aufrufe
1.015
Robby1950
R
B
Antworten
6
Aufrufe
1.051
jogimuc
J
Zurück
Oben Unten