BroadcastReceiver(检查互联网连接)在 activity 开始时被调用

BroadcastReceiver (To check internet connectivity) getting called at the start of activity

我正在使用 BroadcastReceiver 检查互联网连接,但它在 activity 开始时被调用。这是我的 BroadcastReceiver

public BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(final Context context, Intent intent) {
            connectivityManager = (ConnectivityManager)
                    context.getSystemService(Context.CONNECTIVITY_SERVICE );
            activeNwInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
            boolean isWifiConnected = activeNwInfo != null && activeNwInfo.isConnectedOrConnecting();
            activeNwInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
            boolean isMobileNwConnected = activeNwInfo != null && activeNwInfo.isConnectedOrConnecting();
            try {
                if (isWifiConnected || isMobileNwConnected) {
                    Snackbar.make(cordinatorlayout, "Connection established", Snackbar.LENGTH_INDEFINITE)
                            .setAction("GO ONLINE", new View.OnClickListener() {
                                @Override
                                public void onClick(View view) {
                                    //Toast.makeText(context, "clicked", Toast.LENGTH_SHORT).show();
                                    finish();
                                    startActivity(getIntent());
                                }
                            }).show();
                }else {
                    Snackbar.make(cordinatorlayout, "You are Offline", Snackbar.LENGTH_INDEFINITE).show();
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    };
` and I have registered BroadcastReceiver inside oncreate() of MainActivity. My BroadcastReceiver is getting called but it is getting called at the start of activity.

它最初在您设置 BroadcastReceiver 时被调用一次。之后,它开始监听网络连接状态的变化,并在每次状态变化时调用。

如果您希望它仅在 Internet 连接从 DISCONNECTED 变为 CONNECTED 时调用,请创建一个保存当前状态的变量。当您在接收器中收到 CONNECTED 时,请检查变量是否为 DISCONNECTED。如果是这样,请随心所欲;否则什么也不做。