registerReceiver for Broadcast仅在尚未注册的情况下?

Cam*_*ide 8 android

我有一段代码,我正在从服务中调用:

context.registerReceiver(new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        try {
            WifiManager mWm = (WifiManager) context
                    .getSystemService(Context.WIFI_SERVICE);
            ret = mWm.isWifiEnabled();
            // DO MORE STUFF HERE
        } catch (Exception e) {
        }
    }
}, new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION));
Run Code Online (Sandbox Code Playgroud)

我想要的是一种检查并确保registerReceiver在再次调用它之前尚未监听的方法.这可能吗?

例如,如果我的代码片段在方法中,并且我调用该方法10次,那么此onReceive方法似乎运行10次.

Chr*_*Orr 14

没有找到方法 - 你应该只打电话registerReceiver一次,很可能是在你的服务创建时.

你需要BroadcastReceiver在你打电话时保留一个参考unregisterService(这onDestroy()是它的自然场所),否则系统会警告你泄漏广播接收器并生气并可能对你大喊大叫.