BroadcastReceiver endet mit Activity- Was dagegen Tun?

  • Antworten:4
Crail12
  • Forum-Beiträge: 9

14.10.2012, 12:46:52 via Website

Hallo,

mein Problem ist, ich habe einen BroadcastReceiver und eine Activity.
So lange die Activity zu mindest im Hintergrunf läuft, macht mein Receiver auch was er soll.

Ich möchte die Activity aber nach der Registrierung meines Receivers beenden, darum habe ich auch den Receiver im Manifest eingetragen.
(Bisher haben die beiden eigentlich auch nichts miteinander zu tun)

hier mal mein Manifast-Teil
1<receiver android:name="MyBroadcastReceiver"
2 android:permission="android.permission.ACCESS_WIFI_STATE">
3
4 <intent-filter>
5 <action
6 android:name="android.net.wifi.WIFI_STATE_CHANGED" />
7 <!-- <category android:name="android.intent.category.LAUNCHER" /> -->
8 </intent-filter>
9 </receiver>

und ich habe auch eine Klasse für den BroadcastReceiver angelegt:
1public class MyBroadcastReceiver extends BroadcastReceiver{
2
3 @Override
4 public void onReceive(Context context, Intent arg1) {
5 // TODO Auto-generated method stub
6
7 startCheckAndSet(context);
8 }
9 ......
10}
Nun soll ja ein category-Eintrag wie <category android:name="android.intent.category.LAUNCHER" /> , bzw. .HOME bewirken, dass der Receiver an die Activity, bzw. das Hauptprogramm gebunden ist. Deswegen hab ich es aschon Rausgelassen. Muss vielleicht statt .HOME hier etwas hin wie SYSTEM oder so?

Ich verstehe einfach nicht woran es liegt, dass mein BroadcastReceiver nur ausgeführt wurde, wenn die Activity da ist.
Ich habe das Object MyBroadcastReceiver auch nicht über die Activity aufgerufen, steht nur im Manifest..

Könnt Ihr mir bitte helfen??

— geändert am 14.10.2012, 12:49:21

bread1234

Antworten
Crail12
  • Forum-Beiträge: 9

14.10.2012, 20:44:29 via Website

Also ich bekomme auch immer irgendwann eine Meldung, dass meine Activity beendet wurde (auf dem Display).

Wenn irgendjemand einen Rat für mich hat, wäre ich wirklich sehr dankbar.

Ich habe in dem Thema leider noch nicht so viel Erfahrung und bin daher viel am rumprobieren.
Vielleicht hat ja jemand schon einmal ein ähnliches Problem gehabt??

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

15.10.2012, 10:28:07 via Website

Wie ich schon in dem anderen Thread von Dir zu diesem Thema schrieb habe ich ein Problem damit Deine Anforderung zu verstehen.

Du schreibst immer technischen Kram (BroadcastReceiver, Manifest, Service, Activity) und nie was die App eigentlich machen soll. Wie soll man Dir dann helfen?

* Soll solange das Handy angeschaltet ist ein Dienst permanent laufen? Soll beim Neustart des Handys der Dienst automatisch mitgestartet werden?

* Soll solange die App läuft ein Dienst permanent laufen?

* Wer soll den Dienst starten (System, App, ...)?

* Soll der Benutzer mit dem Dienst kommunizieren können (abschalten, ...)?

* Soll der Dienst mit dem Benutzer kommunizieren können (Statusmeldungen, ...)?

...

Antworten
Crail12
  • Forum-Beiträge: 9

15.10.2012, 16:17:47 via Website

Da hast Du natürlich recht. An einige Sachen habe ich noch garnicht gedacht.

Die App soll dafür sorgen, dass sich mein Klingelton stumm schaltet, wenn ich mich in einem bestimmten WLAN befinde.
Der Benutzer hat dabei die Möglichkeit den "Dienst" zu starten oder zu beenden. Dieser Soll auch nach einem Neustart gestartet werden (Das hat aber noch keine Priorität). Vor allem aber soll der Dienst auch seinen Zweck erfüllen, wenn das Display aus ist. Ist ja klar, denn selten habe ich das Teil an, wenn ich die Wohnung, also mein WLAN-Sendebereich verlasse.

Nun, ich habe Code, der die WLAN-Kennung prüft und dann evtl. das Telefon auf stumm stellt.

Ich könnte jetzt alle 5 Minuten den Dienst aufrufen, der diesen Code ausführt.
Da ich aber Strom sparen möchte, dachte ich mir, ich lasse den
Code über einen BroadcastReceiver ausführen. Und dabei frage ich mich, ob ich den Service nicht sogar ganz weglassen kann?

Grüße

— geändert am 15.10.2012, 16:18:24

Antworten
bread1234
  • Forum-Beiträge: 1

19.03.2013, 14:53:14 via Website

Hi,
bist du damit noch weiter gekommen? Ich habe etwas Ähnliches vor und möchte den Wifi Status abfragen und etwas ausführen (eigene Activity starten, Verbindung zu einem Host öffnen, ...), sobald ich mich im heimischen WLAN Netz befinde.
Hast du das Problem mit dem BroadcastReceiver bereits gelöst?

Habe die ganze Zeit die Idee, dass man das mit einem Service lösen kann, der einmalig über meine Activity gestartet wird, und dann im Hintergrund weiter läuft bzw. über den BroadcastReceiver dann eine Änderung mitbekommt.
Bin mir aber ehrlich gesagt noch nicht ganz sicher, wie es zu realisieren ist und werd da mal weiter testen. :)

Viele Grüße
bread1234

Antworten