AndroidsendStickyBroadcast
との違いは何ですか?sendBroadcast
3 に答える
Android SDK の内容は次のとおりですsendStickyBroadcast()
。
「スティッキー」な sendBroadcast(Intent) を実行します。つまり、ブロードキャストが完了した後も送信している Intent が残り、他のユーザーが registerReceiver(BroadcastReceiver, IntentFilter) の戻り値を介してそのデータをすばやく取得できるようになります。他のすべての点で、これは sendBroadcast(Intent) と同じように動作します。
オペレーティング システム経由で送信されるスティッキー ブロードキャストの一例は、ACTION_BATTERY_CHANGED
. そのアクションを呼び出すregisterReceiver()
と、たとえ a であっても、そのアクションの最後のブロードキャストをnull
BroadcastReceiver
取得します。Intent
したがって、これを使用して、バッテリーの将来のすべての状態変化を必ずしも登録しなくても、バッテリーの状態を見つけることができます。
タイプ:- ローカル、ノーマル、オーダード、スティッキー
通常放送
:- sendBroadcast() を使用
:- 非同期ブロードキャスト
:- 特定の順序ではなく、任意の受信者がブロードキャストを受信します
注文放送
:- sendOrderedBroadcast() を使用
:- 同期ブロードキャスト
:- 受信機は優先度ベースでブロードキャストを受信します
:- このタイプのブロードキャストを単純に中止することもできます
ローカルブロードキャスト
:- ブロードキャストが同じプロセス内でのみ使用される場合にのみ使用
スティッキー ブロードキャスト
:- 通常のブロードキャスト インテントは、システムによって送信および処理された後は使用できなくなります。
:- sendStickyBroadcast(Intent) を使用
:- 対応するインテントはスティッキーです。つまり、送信しているインテントは、ブロードキャストが完了した後も残ります。
:- このため、他のユーザーは registerReceiver(BroadcastReceiver, IntentFilter) の戻り値を介してそのデータをすばやく取得できます。
:- これ以外は sendBroadcast(Intent) と同じです。
sendbroadcast()
- 通常のブロードキャストですが、優先順位も設定できます。
sendstickybroadcast()
- これで渡されたインテントは、コード (動的レシーバー) を介して登録している将来のユーザーに適用されます。Android に固執し、任意のブロードキャスト レシーバからの将来のリクエストに合わせて再配信または再ブロードキャストされるブロードキャスト
誰かがスティッキー ブロードキャストを送信するsendstickyBroadcast(intent);
と、ダイナミック レシーバーを使用している将来のユーザーがそのブロードキャストを利用できるようになります。
sendStickyBroadcast()
ただし、非推奨のメソッドを使用しないでください
Android ドキュメントから:
このメソッドは、API レベル 21 で廃止されました。スティッキー ブロードキャストは使用しないでください。それらはセキュリティを提供せず (誰でもアクセスできます)、保護も提供せず (誰でも変更できます)、その他多くの問題を抱えています。推奨されるパターンは、非スティッキー ブロードキャストを使用して何かが変更されたことを報告し、アプリが必要に応じて現在の値を取得する別のメカニズムを使用することです。
これが役立つことを願っています。