【发布时间】:2011-12-05 13:33:08
【问题描述】:
在我的 onReceive 方法中,我有以下代码:
if (from.equals(number)) {
abortBroadcast();
in.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(in);
Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "Not from needed number", Toast.LENGTH_SHORT).show();
}
其中 number = "29853" - 我想从中捕获但不保存在收件箱中的邮件编号。
此代码正常工作 - 如果短信来自号码,则第一个 Toast 工作并打印消息的内容,如果短信不是来自号码,则打印“不是来自需要的号码”。问题是 abortBroadcast 没有成功 - 尽管接收者的优先级为 1000,但来自号码的消息仍在手机的收件箱中:
<receiver android:name=".service_classes.MyReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"
android:priority="1000" />
</intent-filter>
</receiver>
有什么问题 - 为什么 abortBroadcast 不起作用?
【问题讨论】: