You can go this way too:
Create two java files in your package:NetworkConnectivity.java and NetworkMonitorListener.java as below:
NetworkConnectivity.java:
public class NetworkConnectivity {
    private static NetworkConnectivity sharedNetworkConnectivity = null;
    private Activity activity = null;
    private final Handler handler = new Handler();
    private Runnable runnable = null;
    private boolean stopRequested = false;
    private boolean monitorStarted = false;
    private static final int NETWORK_CONNECTION_YES = 1;
    private static final int NETWORK_CONNECTION_NO = -1;
    private static final int NETWORK_CONNECTION_UKNOWN = 0;
    private int connected = NETWORK_CONNECTION_UKNOWN;
    public static final int MONITOR_RATE_WHEN_CONNECTED_MS = 5000;
    public static final int MONITOR_RATE_WHEN_DISCONNECTED_MS = 1000;
    private final List<NetworkMonitorListener> networkMonitorListeners = new ArrayList<NetworkMonitorListener>();
    private NetworkConnectivity() {
    }
    public synchronized static NetworkConnectivity sharedNetworkConnectivity() {
        if (sharedNetworkConnectivity == null) {
            sharedNetworkConnectivity = new NetworkConnectivity();
        }
        return sharedNetworkConnectivity;
    }
    public void configure(Activity activity) {
        this.activity = activity;
    }
    public synchronized boolean startNetworkMonitor() {
        if (this.activity == null) {
            return false;
        }
        if (monitorStarted) {
            return true;
        }
        stopRequested = false;
        monitorStarted = true;
        (new Thread(new Runnable() {
            @Override
            public void run() {
                doCheckConnection();
            }
        })).start();
        return true;
    }
    public synchronized void stopNetworkMonitor() {
        stopRequested = true;
        monitorStarted = false;
    }
    public void addNetworkMonitorListener(NetworkMonitorListener l) {
        this.networkMonitorListeners.add(l);
        this.notifyNetworkMonitorListener(l);
    }
    public boolean removeNetworkMonitorListener(NetworkMonitorListener l) {
        return this.networkMonitorListeners.remove(l);
    }
    private void doCheckConnection() {
        if (stopRequested) {
            runnable = null;
            return;
        }
        final boolean connectedBool = this.isConnected();
        final int _connected = (connectedBool ? NETWORK_CONNECTION_YES
                : NETWORK_CONNECTION_NO);
        if (this.connected != _connected) {
            this.connected = _connected;
            activity.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    notifyNetworkMonitorListeners();
                }
            });
        }
        runnable = new Runnable() {
            @Override
            public void run() {
                doCheckConnection();
            }
        };
        handler.postDelayed(runnable,
                (connectedBool ? MONITOR_RATE_WHEN_CONNECTED_MS
                        : MONITOR_RATE_WHEN_DISCONNECTED_MS));
    }
    public boolean isConnected() {
        try {
            ConnectivityManager cm = (ConnectivityManager) activity
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo netInfo = cm.getActiveNetworkInfo();
            if (netInfo != null && netInfo.isConnected()) {
                return true;
            } else {
                return false;
            }
        } catch (Exception e) {
            return false;
        }
    }
    private void notifyNetworkMonitorListener(NetworkMonitorListener l) {
        try {
            if (this.connected == NETWORK_CONNECTION_YES) {
                l.connectionEstablished();
            } else if (this.connected == NETWORK_CONNECTION_NO) {
                l.connectionLost();
            } else {
                l.connectionCheckInProgress();
            }
        } catch (Exception e) {
        }
    }
    private void notifyNetworkMonitorListeners() {
        for (NetworkMonitorListener l : this.networkMonitorListeners) {
            this.notifyNetworkMonitorListener(l);
        }
    }
}
NetworkMonitorListener.java:
public interface NetworkMonitorListener {
    public void connectionEstablished();
    public void connectionLost();
    public void connectionCheckInProgress();
}
And at last, use this class in your activity as below, say for example:
        NetworkConnectivity.sharedNetworkConnectivity().configure(this);
        NetworkConnectivity.sharedNetworkConnectivity().startNetworkMonitor();
        NetworkConnectivity.sharedNetworkConnectivity()
                .addNetworkMonitorListener(new NetworkMonitorListener() {
                    @Override
                    public void connectionCheckInProgress() {
                        // Okay to make UI updates (check-in-progress is rare)
                    }
                    @Override
                    public void connectionEstablished() {
                        // Okay to make UI updates -- do something now that
                        // connection is avaialble
                    }
                    @Override
                    public void connectionLost() {
                        // Okay to make UI updates -- bummer, no connection
                    }
                });
With this way, you can check internet connection in real time, and act accordingly.