我正在编写的应用程序,处理短信的,因为我计划它应该取代股票/默认的应用程序。
我截获了由传入短信触发的android.provider.Telephony.SMS_RECEIVED广播,并发布了我自己的通知,然后调用abortBroadcast(),因此最终没有导致默认/股票应用程序的传入新消息的通知。
但问题是,事实上,当用户没有阅读足够长的时间(如几分钟)时,收到的短信股票/默认应用程序会引发另一次广播-我怀疑只是检查是否有未读短信。因此用户会看到两个通知:一个来自默认/股票消息应用程序,另一个来自mines,这是混乱的。
当有未读短信时,我找不到哪个广播被触发了?
有什么建议吗?
发布于 2012-09-19 22:33:36
您可以这样设置您的接收器的优先级,这样您就知道它具有最高优先级,并将执行onReceive()方法:
<receiver android:name=".SmsReceiver" android:enabled="true"
android:exported="true" android:priority="999">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>https://stackoverflow.com/questions/12496743
复制相似问题