BroadcastReceiver优先级问题

时间:2011-08-24 10:47:03

标签: android sms broadcastreceiver

  1. 我正在我的应用中实施SMSListener我已将其设置为android:priority="2147483647"可能的最高优先级,以便我可以接听新传入的短信。

  2. 在我的第二个示例应用中,我为SMSListener设置了与上面相同的优先级,但是当我接到新来电时,我正在使用abortBroadcast();

  3. 当我同时运行这两个应用时,我发现1正在2之前接听电话。现在我正在寻求这种行为保持不变或不稳定,2可以在1之前接听电话。

    我想确保我的应用程序即使存在其他具有最高优先级并且正在中止短信的应用程序,也会在短信出现时接听电话。

    我希望我已经提出了我的观点并寻找一些令人信服的答案。

    感谢您花时间解决我的问题。

2 个答案:

答案 0 :(得分:2)

abortBroadcast仅在他们首先获得它时才有效,通常基于安装顺序,但并非总是如此。)系统级应用程序将执行,然后Android将尝试整理非系统应用程序。如果查看源代码,执行顺序基于优先级,但对于超过999的应用程序或具有相同优先级的应用程序,选择应用程序顺序的调用不一致。它可能是安装顺序,但系统更改可能会导致其他执行顺序(我已经多次尝试过测试)。

答案 1 :(得分:0)