1. ホーム
  2. android

[解決済み] Sticky Broadcastとは?

2023-02-28 19:53:37

質問

アンドロイドのドキュメントで、この用語とそれに付随する定義に出会いました。

これらは、終了後にデータがシステムによって保持されるブロードキャストであり、クライアントは次のブロードキャストを待つことなく、そのデータを迅速に取得することができます。

これは何を意味するのでしょうか?誰か特定の例でその使い方を詳しく説明してください。私は、この意図を使用するための許可を要求する必要があると信じています?なぜでしょうか?

<uses-permission android:name="android.permission.BROADCAST_STICKY"/> - Allows an application to broadcast sticky intents.

どのように解決するのですか?

アクティビティが onPause を呼び出すと、ブロードキャストを受信できないことがあります。スティッキーなブロードキャストは onResume .

2020年6月23日更新

スティッキーブロードキャストは非推奨です。

参照 sendStickyBroadcast ドキュメント .

<ブロッククオート

このメソッドはAPIレベル21で非推奨となりました。

スティッキー ブロードキャストは使用すべきではありません。セキュリティがない (誰でもアクセスできる)、保護がない (誰でも変更できる)、その他多くの問題があります。推奨されるパターンは、何かが変更されたことを報告するためにスティッキーでないブロードキャストを使用し、アプリが必要なときにいつでも現在の値を取得できるようにする別のメカニズムを持つことです。

実装

Intent intent = new Intent("some.custom.action");
intent.putExtra("some_boolean", true);
sendStickyBroadcast(intent);

リソース