android - BroadcastReceiver 优先级问题

标签 android sms broadcastreceiver

  1. 我正在我的应用程序中实现 SMSListener 并且我已将它的最高优先级设置为 android:priority="2147483647" 以便我应该接到电话在新收到的短信上。

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

当我运行这两个应用程序时,我发现 12 之前接到电话。现在我正在寻求这种行为将保持原样或者它不是常量并且 2 可以在 1 之前得到调用。

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

我希望我已经表达了我的观点并正在寻找一些令人信服的答案。

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

最佳答案

abortBroadcast 仅在他们首先获得它时起作用,通常基于安装顺序,但并非总是如此。)系统级应用程序将执行,然后 Android 将尝试整理非系统应用程序。查看源码,执行顺序是按优先级排序的,但是对于999以上的应用或者相同优先级的应用,调用选择应用顺序是不一致的。它可能是按照安装顺序排列的,但系统更改可能会导致其他执行顺序(我在测试时多次看到这种情况)。

关于android - BroadcastReceiver 优先级问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7174203/

相关文章:

android - 更新 android studio 3.5 时打补丁失败

android - Select Build Variant 菜单项变灰

android - 代码风格/正确结构android

android - 在 TextView 中显示短信

android - 而不是预览,Android Studio 只显示黑屏,上面写着 'android...ActionBarOverlayLayout'

我相信从 twilio 发送的短信被 t mobile 阻止

java - 如何使用cloudhopper异步发送deliverS Resp

sms - SMS 消息的最大长度是多少?

Android - 使用 CommonWare 的 locpoller 时出现问题

java - 在线程的构造函数中调用 Looper.prepare() 会导致 RunTimeException