この用語は、Androidのドキュメントに付属の定義とともに記載されています
これらは、終了後にシステムがデータを保持するブロードキャストであるため、クライアントは次のブロードキャストを待たずにそのデータをすばやく取得できます。
どういう意味ですか?誰かが特定の例でその使用を詳しく説明できますか?この意図を使用するための許可を要求する必要があると思いますか?なんでそうなの?
<uses-permission Android:name="Android.permission.BROADCAST_STICKY"/> - Allows an application to broadcast sticky intents.
ここでマークマーフィーの説明をお読みください: AndroidでのsendStickyBroadcastとsendBroadcastの違いは何ですか
スティッキーブロードキャストの使用方法の抽象的な例を次に示します。
_Intent intent = new Intent("some.custom.action");
intent.putExtra("some_boolean", true);
sendStickyBroadcast(intent);
_
フリーズされた(onPause)アクティビティでこのブロードキャストを聞いている場合、実際のイベントを見逃す可能性があります。これにより、ブロードキャストが発生した後(onResume)にブロードキャストを確認できます。
EDIT:スティッキーブロードキャストの詳細...
また、レシーバーのonReceive
で使用するために removeStickyBroadcast(Intent)
をチェックし、APIレベル5 +では isInitialStickyBroadcast()
をチェックしてください。 。
お役に立てば幸いです。
スティッキーブロードキャストは、システムに負荷がかかるため、お勧めできません。 Android Developersグループの 'Sticky Broadcasts and Concurrency Options' に関する議論のhackbodからのメモを読んでください。
@ Shouvik、StickyBroadcastの使用を検討している正確なシナリオを指定してください。誰かが代替ソリューションを提案できるかもしれません。
sendStickyBroadcast()
は、スティッキーとして知られるsendBroadcast(Intent)
を実行します。つまり、ブロードキャストが完了した後も、送信しようとしているインテントは残ります。そのため、他のユーザーはregisterReceiver(BroadcastReceiver, IntentFilter)
。他のすべての方法では、これはsendBroadcast(Intent)
と同じように動作します。オペレーティングシステム経由で送信されるスティッキーブロードキャストの一例は_ACTION_BATTERY_CHANGED
_です。そのアクションに対してregisterReceiver()
を呼び出すと、null BroadcastReceiver
であっても、そのアクションに対して最後にブロードキャストされたインテントを取得します。したがって、これを使用して、バッテリーの将来のすべての状態変更を必ずしも登録することなく、バッテリーの状態を見つけることができます。
スティッキブロードキャストの値は、最後にブロードキャストされた値であり、現在スティッキキャッシュに保持されています。これは、現在受信したブロードキャストの価値ではありません。いつでもアクセスできるブラウザCookieのようなものだと言えるでしょう。スティッキーブロードキャストは廃止されました。
このメソッドはAPIレベル21で廃止されました。スティッキーブロードキャストは使用しないでください。セキュリティ(誰でもアクセス可能)、保護(誰でも変更可能)、およびその他の多くの問題はありません。推奨されるパターンは、非スティッキーブロードキャストを使用して、何かが変更されたことを報告し、アプリが必要なときにいつでも現在の値を取得する別のメカニズムを使用することです。
システムによって送信および処理された後、通常のブロードキャストインテントは使用できなくなります。 sendStickyBroadcast(Intent)メソッドを使用する場合、インテントはスティッキーになります。つまり、送信しているインテントは、ブロードキャストの完了後も残ります。
私のブログを参照してください: ここにリンクの説明を入力してください