несколько секунд назад Я отлаживал свой виджет, и я обнаружил, что метод onReceive
вызывается, даже если мой виджет не находится на главном экране (он слушает WIFI_STATE_CHANGED_ACTION
). Даже если процесс моего виджета не запущен, он будет запущен и вызван метод. Код манифеста заключается в следующем:onReceive, когда он не должен
<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>
Метод onReceive
просто вызывает другой метод toggleState
(для изменения состояния Wi-Fi), а затем обновляет виджет изображения (от прочь к на изображение или наоборот).
Очевидно, что вызов двух методов toggleState и updateWidget (и поэтому полный OnReceive) бесполезны, если виджет не деятельны на главном экране ..
Итак, я хочу, чтобы мой onReceive
называется только если мой виджет эффективно размещен на главном экране. Есть ли способ сделать это? :)
заранее спасибо за ответы
Можете ли вы изменить свой вопрос, чтобы быть более конкретным о том, как вы настраиваете этот «BroadcastReceiver»? – CommonsWare
Вы правы, извините :) .. Код добавлен. – Salv0