onreceiveは、そうすべきではないときに呼び出されます
-
10-10-2019 - |
質問
数秒前にウィジェットをデバッグしていましたが、 onReceive
私のウィジェットがホーム画面にない場合でもメソッドが呼び出されます(それは WIFI_STATE_CHANGED_ACTION
)。ウィジェットのプロセスが実行されていなくても、開始され、メソッドが呼び出されます。マニフェストのコードは次のとおりです。
<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
(WiFi状態を変更するには)、ウィジェット画像を(オフからオンラインまたはその逆に)更新します。
明らかに、ウィジェットが実際にホーム画面でアクティブでない場合、2つの方法の2つの方法の呼び出し(そして完全なオンレセイブ)は役に立たない。
だから、私は私のものが欲しい onReceive
ウィジェットがホーム画面に効果的に配置されている場合にのみ呼び出されます。これを行う方法はありますか? :)
答えを前もってありがとう
解決
なぜあなたの放送レシーバーは呼ばれないのですか?それが、プロセス/アクティビティが実行されていないときに、ブロードキャストレシーバーのポイントです。
特定の時間にのみ電話をかけたい場合は、ウィジェットのコードに登録し、放送を受けたくないときに登録解除する必要があります。
所属していません StackOverflow