可以開機啓動一個服務進行動態註冊
優先級設置最大值:android:priority="2147483647" //優先值最大也就unsigned int的最大值,360也是這樣的,至於那個先監聽到,我試了下,貌似是哪個先安裝哪個先監聽到。
File file = new File("/data/app/");
String[] files = file.list();
來打印此數組的順序,這個順序就是你安裝的順序。也就是廣播接受先後的順序。
如果你想改變先後順序,需要修改你應用程序的包名。因爲第三方應用安裝後會在data/app下生成com.yourname-1.apk的文件夾,接受廣播的順序跟這個名字是有關的。
順便提一下,執行上面那2行代碼如果用真機調試的話需要root權限。或者系統爲eng版本的機器。如果用模擬器調試的話是可以執行的。
360優先級別之所以高是因爲他是動態註冊的廣播,然後開機啓動。動態廣播比靜態優先級別高,動態註冊的廣播優先級別是誰先註冊誰就先接收到。所以這就要歸根到誰先啓動程序,開機誰先啓動,那誰就先註冊廣播,誰也就能先接收到短信的廣播了。至於如何開機先啓動,看我上面的回答,數組排名靠前的就先啓動。這個僅限第三方安裝的。內置的順序當然要高於第三方
PS:以上文字從論壇而來。。。