What is the integer value开发者_高级运维 the gives a broadcast receiver the highest priority?
<intent-filter android:priority="1">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
Well, according to the documentation
"The value must be an integer, such as "100". Higher numbers have a higher priority."
So I'm guessing that any integer value is valid. And the highest priority possible would be the maximum integer that android allows, which is (2^31 - 1).
EDIT
The documentation has been updated, and it now explicitly states which priority values may be used by applications. The documentation now says
SYSTEM_HIGH_PRIORITY (1000): Applications should never use filters with this or higher priorities. SYSTEM_LOW_PRIORITY (-1000): Applications should never use filters with this or lower priorities.
Implying that your application is permitted to use integer priority levels between -999 and 999.
Well the system highest priority is 1000. You can refer to this link to know more.
Actually, numbers above 1000 grant more priority, despite the documentation. So the highest integer number(2147483647) grants more priority.
Applications should avoid using filters with "this" or higher priorities. "this" refers to the value "1000"
Google suggests that: The value must be an integer, such as "100". Higher numbers have a higher priority. The default value is 0. The value must be greater than -1000 and less than 1000.http://developer.android.com/guide/topics/manifest/intent-filter-element.html But in the projects, we often use the highest integer number(2147483647) (2 ^32-1)) or others;it is helpful.
999 gives a broadcast receiver the highest priority.
As per Android Documentation: Applications must use a value that is larger than SYSTEM_LOW_PRIORITY and smaller than SYSTEM_HIGH_PRIORITY. The value of SYSTEM_HIGH_PRIORITY is 1000.
References: http://developer.android.com/guide/topics/manifest/intent-filter-element.html
精彩评论