2

プライオリティを使用できますか

android:priority 

Context.sendBroadcast

また、またはそれとは異なる結果が得られます

Context.sendOrderedBroadcast

ありがとう

4

1 に答える 1

6

android: priorityいいえ、一緒には使えませんsendBroadcast。ドキュメントが言うように:

android: priority 

これは、ブロードキャスト メッセージを受信するためにブロードキャスト レシーバが実行される順序を制御します。優先度の値が高いものは、値が低いものより先に呼び出されます。(順序は同期メッセージにのみ適用されます。非同期メッセージでは無視されます。) この属性は、ブロードキャストを受信する特定の順序を本当に強制する必要がある場合、または Android に特定のアクティビティを他のアクティビティよりも優先させたい場合にのみ使用します

について知っていることを見てみましょsendBroadcastNormal broadcast

通常のブロードキャスト ( で送信Context.sendBroadcast) は完全に非同期です (順序どおりではありません)。ブロードキャストのすべてのレシーバーは未定義の順序で、多くの場合同時に実行されます。これはより効率的ですが、レシーバーがここに含まれる結果または中止 API を使用できないことを意味します。

の場合sendOrderedBroadcast、これは次のOrdered broadcastとおりです。

順序付けされたブロードキャスト ( で送信Context.sendOrderedBroadcast) は、一度に 1 つのレシーバーに配信されます。各レシーバーが順番に実行されると、結果を次のレシーバーに伝達したり、ブロードキャストを完全に中止して他のレシーバーに渡さないようにしたりできます。レシーバーが実行される順序は、一致するインテント フィルターの属性で制御できます。android:priority同じ優先順位のレシーバーは任意の順序で実行されます。

于 2013-11-10T09:56:39.023 に答える