シンプルなコードですべてを一度に登録することは可能ですか? または1人ずつ登録を解除する必要がありますか?アクティビティに登録されているすべてのブロードキャスト受信者の登録を解除する
4
A
答えて
5
これは1つずつ行う必要があります。アクティビティにはあまり多くのものがあるべきではないので、これはあまりに面倒であるとは思わないでしょう。
5
私はそれが古い質問です知っているが、なぜあなたは、すべての受信機が登録を解除するトリガー意図をピックアップしてbroadcastreceiversを使用していませんか? は、あなたがこれを置く応答フラグメント/活動において
(現在の答えは提供よりも、より正確なものを投稿する募集):
public class PanicFragment extends Fragment {
IntentFilter killFilter = new IntentFilter("your.app.name.some.awesome.action.title");
BroadcastReceiver kill = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
context.unregisterReceiver(receiver); // The actual receiver you want to unreigster
context.unregisterReceiver(this); // The one you just created
}
};
(フラグメントを作成する際に最初に受信機を登録することを忘れないでください/私はこのことを願っています
private void callThisToUnregisterAllYourReceivers(Context context) {
Intent killThemAll = new Intent();
killThemAll.setAction("your.app.name.some.awesome.action.title");
context.sendBroadcast(killThemAll);
}
:
そして、あなたのサービスや他の活動または任意の活動)あなたはこれをしたいです便利
0
どのような方法で、私は他の放送受信機を削除するには、別のBroadcastReceiver
を使用することはありませんでした。ここで
は、私は私のアプリケーションクラスに追加するものです。
private static List<BroadcastReceiver> broadcastReceivers = new LinkedList<>();
public void addReceiver(BroadcastReceiver receiver, IntentFilter filter) {
mContext.registerReceiver(receiver, filter);
broadcastReceivers.add(receiver);
}
public void removeReceiver(BroadcastReceiver receiver) {
unregisterReceiver(receiver);
broadcastReceivers.remove(receiver);
}
public List<BroadcastReceiver> getAllReceivers() {
return broadcastReceivers;
}
public void removeAllReceivers() {
for (BroadcastReceiver receiver : getAllReceivers()) {
removeReceiver(receiver);
}
}
関連する問題
- 1. カスタムコントロールのブロードキャスト受信者を登録解除する場所
- 2. ブロードキャスト受信者からリスナー&サービスを登録解除するには
- 3. ConnectivityManager.CONNECTIVITY_ACTIONは、受信者の登録時に常にブロードキャストされますか?
- 4. 登録解除
- 5. TCL fileeventで登録されたコールバックの登録を解除するには?
- 6. ノックアウトで登録された機能の登録を解除するには?
- 7. Facebook登録プラグイン:登録ライフサイクル管理(登録解除)
- 8. 既に登録されているSharePointイベントレシーバーの登録
- 9. Grails - 既に登録されているオブジェクトマーシャラの登録を解除するには
- 10. 受信者のライフサイクル - onResume()に再登録するとクラッシュする
- 11. WindowsセットアッププロジェクトでDLLを登録および登録解除する
- 12. サービスの受信機を登録する
- 13. 登録解除BroadcastReceiver
- 14. 登録解除キャラクタデバイス
- 15. マニフェストファイルの受信機をブロードキャストするためのカスタムインテントフィルタを登録するには?
- 16. ブロードキャストのインテントコールバックがキャンセルされ、デバイスの登録が解除されます。
- 17. Python Twistedプロトコルの登録が解除されていますか?
- 18. Asp.Netのクライアントスクリプトを登録解除する
- 19. Outlookの登録解除アプリ
- 20. Angular2:ホストリスナーの登録解除
- 21. Cordova WebViewを埋め込む、受信者が登録されていません
- 22. グローバルコンテキストメニューリスナーまたは登録されているすべてのビューのコンテキストメニューを登録する方法
- 23. すべてのイベントを登録解除してメモリを解放する
- 24. ブロードキャスト受信機はどこに登録すればよいですか?
- 25. GAEによるユーザーの登録解除
- 26. アプリが死んだ後に登録解除された登録方法
- 27. XAMLのMVVM Lightのアプリケーションレベルでメッセージ受信者を登録していますか?
- 28. 登録するすべてのコントローラ
- 29. は、登録解除C2DM
- 30. CancellationToken登録解除アクション
これは、上記のいずれかが受け入れ答えである理由を確認してください最も効率的な答えは、そうではありません。 –