シンプルなコードですべてを一度に登録することは可能ですか? または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. 他の活動に登録されている放送受信機の登録を解除するには?
- 4. 登録者が登録解除された場合、その登録者を追跡する方法
- 5. ConnectivityManager.CONNECTIVITY_ACTIONは、受信者の登録時に常にブロードキャストされますか?
- 6. Asteriskの登録/登録解除をMySQLに保存する
- 7. 電子メールで文脈メニューの登録者を登録解除する方法
- 8. 登録解除
- 9. TCL fileeventで登録されたコールバックの登録を解除するには?
- 10. ノックアウトで登録された機能の登録を解除するには?
- 11. AndroidアプリケーションでIntentServiceブロードキャスト受信者の登録を解除する必要がありますか
- 12. 登録解除後にユーザーをMailChimpリストに登録する
- 13. GreenRobot EventBusエラー:イベントに登録されている登録者がいません
- 14. Facebook登録プラグイン:登録ライフサイクル管理(登録解除)
- 15. 既に登録されているSharePointイベントレシーバーの登録
- 16. アプリケーションコンテキスト経由でブロードキャスト受信機を登録する
- 17. Grails - 既に登録されているオブジェクトマーシャラの登録を解除するには
- 18. 受信者のライフサイクル - onResume()に再登録するとクラッシュする
- 19. イベントハンドラを登録/登録解除する一般的な方法
- 20. WindowsセットアッププロジェクトでDLLを登録および登録解除する
- 21. サービスの受信機を登録する
- 22. 登録解除キャラクタデバイス
- 23. 登録解除BroadcastReceiver
- 24. マニフェストファイルの受信機をブロードキャストするためのカスタムインテントフィルタを登録するには?
- 25. ブロードキャストのインテントコールバックがキャンセルされ、デバイスの登録が解除されます。
- 26. アクティビティが破棄されたときのインタフェースコールバックの登録解除
- 27. 受信を動的に登録するサービスを開始する受信者
- 28. Android:非UIスレッドで受信者を動的に登録する
- 29. BROADCAST RECEIVERを登録し、それを別のアクティビティで登録解除することはできますか? - Android
- 30. Python Twistedプロトコルの登録が解除されていますか?
これは、上記のいずれかが受け入れ答えである理由を確認してください最も効率的な答えは、そうではありません。 –