Activity aus einem BroadcastReceiver "OnReceive" heraus starten

  • Hallo,


    folgende Situation:
    - ich benutze Android-Studio mit Emulator..


    - die HauptActivity, ...MAIN, ...LAUNCHER ist zur Einstellung der Parameter.
    - es ist eine zweite Activity enthalten, welche ein "OK-Dialog" darstellt.
    - in der AndroidManifest.xml ist ein BroadcastReceiver registriert, er reagiert auf einkommende SMS und wertet diese aus.


    Der BroadcastReceiver läuft und reagiert richtig. Passt der SMS-Text mit dem eingestelltem Kennwort überein, soll die zweite Activity angezeigt werden.
    Testweise spiele ich auch ein Ton ab. Der Ton ist immer zu hören.
    Auch, wie erwartet nach einem Neustart des Handys.



    Die "zweite Activity" wird nur angezeigt, so lange die HauptActivity angezeigt wird.
    Ist die HauptActivity aktiv, wird die 2. korrekt angezeigt, ist sie im Hintergrund oder beendet, wird die zweite Activity nicht angezeigt.


    Ausschnitt aus der AndroidManifest.XML


    Ausschnitt aus dem BroadcastReceiver:

    a) Wieso nicht ?
    b) Wie bekomme ich die zweite Activity aus dem Receiver heraus angezeigt?


    beste Grüße Mario

  • ... okay problem ist gelöst (fast) ...


    Ich hab noch mal ein bissl herumgestöbert und ein paar Anleitungen gelesen und nun ist es klar und rennt ;)


    Folgende Erkenntnisse:


    - ein BroadCastReceiver (BCR) kann keine Activity starten
    - ein BCR soll nur kurze Abläufe ohne großen Speicherzugriff ausführen
    - ein BroadCastReceiver kann einen Service starten
    - ... aber auch ein Service, der nicht von einer Activity gestartet wurde, kann keine Activity starten
    - eine Notification kann aber angezeigt werden
    - eine Notification kann Aktionen auslösen


    Daraus entstand folgendes Konstrukt:


    - in der AndroidManifest.XML wird zusätzlich Service eingefügt

    XML
    <service android:name=".BellMyPhoneService" />



    - In dem BCR, der auf die eingehende SMS reagiert, wird ein neuer Intent erstellt, in diesen werden die SMS-Daten (getExtras()) reingepackt und damit der Service gestartet:


    - Im Service erfolgt die Verarbeitung der SMS und auch das Starten der Notification
    In der Notification kann per Action "OKAY" ein Event gesendet werden, auf das reagiert der Service und beendet sich selbst.
    Alternativ kann eine weitere SMS mit einem "StopCode" gesendet werden, auch dadurch beendet sich der Service.


    Problem ist derzeit nur: Wie bekomme ich die Notification aus dem Service als "Head Up" / "Pop up" -Message (wie die Mitteilung "Neue SMS") angezeigt.
    Derzeit wird die als "silent message" angezeigt:


    Alle Versuche, mit denen im Netz gefundenen Hinweise sind fehlgeschlagen, die Notification "popt nicht auf" ...


    Hab ich da was übersehen?


    Gruß Mario

  • ... onStartCommand im Service


    .. ^^

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!