[android] 안드로이드에서 네트워크 연결 리스너 처리하기

안드로이드 앱을 개발할 때 네트워크 연결 상태를 확인하고 이에 대한 처리를 하는 것은 중요합니다. 이를 위해 안드로이드에서는 ConnectivityManager 클래스를 사용하여 네트워크 상태를 확인하고, ConnectivityManager.NetworkCallback을 구현하여 네트워크 연결 변경 이벤트를 처리할 수 있습니다.

1. 네트워크 상태 확인하기

안드로이드에서 현재 네트워크 상태를 확인하려면 다음과 같이 ConnectivityManager를 사용합니다.

ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
if (activeNetworkInfo != null && activeNetworkInfo.isConnected()) {
    // 인터넷 연결 상태
} else {
    // 인터넷 미연결 상태
}

2. 네트워크 변경 이벤트 처리하기

네트워크 연결 상태가 변경될 때마다 콜백을 받아 처리하려면 ConnectivityManager.NetworkCallback을 구현합니다.

private ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback() {
    @Override
    public void onAvailable(Network network) {
        super.onAvailable(network);
        // 네트워크 연결 가능할 때 처리
    }

    @Override
    public void onLost(Network network) {
        super.onLost(network);
        // 네트워크 연결 끊겼을 때 처리
    }
};

connectivityManager.registerDefaultNetworkCallback(networkCallback);

위와 같이 ConnectivityManager.NetworkCallback을 구현하여 connectivityManager.registerDefaultNetworkCallback(networkCallback)를 호출하면 네트워크 연결 상태 변경 시에 onAvailable()onLost() 콜백 메서드가 호출됩니다.

안드로이드에서 네트워크 연결 리스너를 처리하는 방법에 대해 알아보았습니다. 네트워크 상태를 확인하고 이벤트를 감지하여 적절한 처리를 함으로써 사용자 경험을 향상시킬 수 있습니다.

참고 문헌: