vor ein paar Sekunden habe ich mein Widget Debuggen und ich habe festgestellt, dass die onReceive
Methode aufgerufen wird, auch wenn mein Widget nicht auf dem Startbildschirm (es hört WIFI_STATE_CHANGED_ACTION
). Auch wenn der Prozess meines Widgets nicht läuft, wird es gestartet und die Methode aufgerufen. Der Code in dem manifest ist folgend:onReceive genannt, wenn es nicht sollte
<application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
<receiver android:name="WiFiWidget">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/widget_info" />
</receiver>
</application>
Verfahren onReceive
rufen einfach eine andere Methode toggleState
(den WiFi Zustand zu ändern), und aktualisiert dann das Widget-Bild (von AUS auf dem Bild oder und umgekehrt).
Offensichtlich ist der Aufruf der beiden Methoden toggleState und updateWidget (und so die komplette OnReceive) sind nutzlos, wenn das Widget nicht tatsächlich aktiv auf dem Home-Bildschirm ist ..
Also, ich möchte meine onReceive
nur aufgerufen, wenn Mein Widget ist effektiv auf dem Home-Bildschirm platziert..Es gibt einen Weg, dies zu tun? :)
Vielen Dank im Voraus für die Antworten
Können Sie Ihre Frage etwas genauer bearbeiten, wie Sie diesen 'BroadcastReceiver' einrichten? – CommonsWare
Sie haben Recht, tut mir leid :) .. Code hinzugefügt. – Salv0