切换BroadcastReceiver开/关/选项

时间:2012-08-27 18:18:35

标签: java android android-intent broadcastreceiver android-activity

我有一个非常标准的BroadcastReceiver来拦截传出呼叫。我想给用户选择将其设置为关闭(禁用BroadcastReceiver),给我选项来使用它(BroadcastReceiver已启用但提示用户是否使用该服务),并始终打开(无提示) ,BroadcastReceiver将始终触发活动。)

使用标准意图:

<intent-filter android:priority="1">
    <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

活动也是通用的:

public class CallReceiver extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent) {
        String dialedNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
        String correctedNumber = correctNumber(dialedNumber);
        setResultData(correctedNumber);
    }
}

我怎样才能做到这一点?感谢

1 个答案:

答案 0 :(得分:0)

您可以将用户设置存储在SharedPreference对象中。您可以使用PreferenceScreen - PreferenceActivity来存储用户设置。您可以在SharedPreference方法中阅读onReceive对象。 这不会完全禁用BroadcastReceiver,但对于不会对电池寿命产生重大影响的广播接收器来说,这是一个不错的解决方案。