1

私のアプリには 2 がありBroadcastReceiversます。AReceiverと を呼び出しましょうBReceiver。アプリの設定でオンになっている場合は、AReceiverリッスンしているだけなandroid.intent.action.BOOT_COMPLETEDので、別のアクションに登録できます。BReceiver

したがってPreferenceActivity、アプリのステータスを切り替えることができる があります。つまり、次のことを意味します。

  • ステータス: オン
    • AReceiver起動時に登録されませBReceiver
    • Off からの変更 -> On を登録する必要がありますBReceiver
  • ステータス: オフ
    • AReceiverBReceiver起動時に登録します
    • オンからオフに変更すると、登録が解除されますBReceiver

これが私が抱えている問題です。または にBReceiver登録されていて、その間に閉鎖された可能性がある場合、どうすれば登録を解除できますか? 登録されたレシーバーのインスタンスが必要なため、引数として何を渡す必要があるかわかりません。AReceiverPreferenceActivityunregisterBroadcastReceiver()

登録済みのインスタンスを取得して登録を解除するにはどうすればよいBroadcastReceiverですか?

4

2 に答える 2

0

BReceiver のアクティブ化が常に AReceiver を介して行われるようにすることができます (設定で OFF->ON に切り替えた場合でも)。AReceiver が BReceiver のインスタンスを格納し、登録を解除できるようにします。それは理にかなっていますか?

于 2012-11-13T12:26:28.077 に答える
0

BReceiver をマニフェスト (デフォルトでは無効) に配置し、いつでも有効または無効にできるはずです。こちらをご覧ください

于 2012-11-13T11:55:05.223 に答える