priority="800"
1000是上限把
如果相同的话应该是随机排序的。

解决方案 »

  1.   

    用动态注册的模式有更高优先级
    设置最大值:android:priority="2147483647"
    可以开机启动一个服务进行动态注册
      

  2.   

    这是真的吗?学习了如果360等程序也采用这种方法,那么谁会先接收到广播呢?
    开机启动这个服务应该是静态得了吧。但是如果360也采用一个priority="1000"的静态Receiver来接收开机广播,然后动态注册他的短信Receiver,级别也设成最大,那么我们和360谁会先接收到呢?
    是无序的么?
      

  3.   

    优先值最大也就unsigned int的最大值,360也是这样的,至于那个先监听到,我试了下,貌似是哪个先安装哪个先监听到。
      

  4.   


    4楼正解,可以通过
    File file = new File("/data/app/");  
    String[] files = file.list(); 
    来打印此数组的顺序,这个顺序就是你安装的顺序。也就是广播接受先后的顺序。
    如果你想改变先后顺序,需要修改你应用程序的包名。因为第三方应用安装后会在data/app下生成com.yourname-1.apk的文件夹,接受广播的顺序跟这个名字是有关的。
    顺便提一下,执行上面那2行代码如果用真机调试的话需要root权限。或者系统为eng版本的机器。如果用模拟器调试的话是可以执行的。
      

  5.   


    你可查一下ContentObserver的用法。这个是一个用于监听数据库变动的类。短信收发都会触发短信的数据库。
      

  6.   

    动态注册的模式的priority取值范围我不清楚可以参考如下链接: http://blog.csdn.net/ycjunhua/article/details/6591560