注销广播接收器中的问题

时间:2019-03-14 16:55:03

标签: android broadcastreceiver android-manifest android-broadcastreceiver

我希望我的应用程序具有静态广播接收器,因为我希望它在应用程序关闭时能够检测到传入消息。我已在清单中添加了

<receiver android:name=".SMSReceiver"
        android:exported="true"
        android:enabled="true">

        <intent-filter>
            <action android:name="android.provider.Telephony.SMS_RECEIVED" />
        </intent-filter>
    </receiver>

现在我希望它通过开关动态注销。当开关关闭时,它显示未检测到传入的SMS。我该怎么做。请帮助我

2 个答案:

答案 0 :(得分:0)

由于您无法动态更改清单内容。

您可以使用共享首选项将开关状态存储为true或false。

然后在onRecieve中,从首选项中获取状态,然后仅在状态为true时执行操作,否则不执行。

答案 1 :(得分:0)

您可以在清单注册的接收器中检查配置值,并且在适当时不执行任何操作。示例:

public class MyBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (myBroadcastReceierIsOff) {
            return;
        }
        (...)
    }
}
相关问题