AbortBroadcast在接收器中并在IntentService中重新发布

时间:2014-01-01 10:39:47

标签: android broadcastreceiver intentservice

我有一个BroadcastReceiver,其中应用正在侦听传入的短信,即时IntentService onReceive BroadcastReceiver方法public class MyBroadcastReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { this.abortBroadcast(); context.startService(new Intent(context,MyIntentService.class)); } }

onReceive

IntentService方法中播放广播。我想根据条件清除MyBroadcastReceiver中的广播,以便短信进入收件箱而不是,我该怎么做?我可以重新发布广播,以便将消息保存在收件箱中并绕过{{1}}

问候。

2 个答案:

答案 0 :(得分:1)

public class MyBroadcastReceiver extends BroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent) {
            SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
            if(prefs.getBoolean("<KEY>", true)){
                 context.startService(new Intent(context,MyIntentService.class));
            }
    }
}

在intentService中,如果您的条件满足设置为Boolean并且您的密钥为false

答案 1 :(得分:1)

  

我想根据条件清除IntentService中的广播,这样SMS就不会进入收件箱,我该怎么做?

这是不可能的,抱歉。

  

我可以重新发布广播,以便将消息保存在收件箱中并绕过MyBroadcastReceiver

这也是不可能的,抱歉。

由于您的整个应用无法在Android 4.4+上运行,我建议您重新考虑自己在做什么。用户在Android 4.4 +上选择的SMS客户端将始终收到SMS消息。