The onLocationChanged() method is only called when their is a location update with the appropriate Latitude and Longitude. It might be null to slightest possibility but I've never experienced it.
U've done it properly but I'll like to make a suggestion. Consider a scenario-
The network provider is enabled and u've requested location updates. But for some reason it does not returns location update (there r many cases in which Location provider dosen't return location update also it is not compulsory to return the location updates. )
Now as per ur code it won't check the GPS provider cos its in "else if( isGPSEnabled )". So I'll suggest u to implement it in only "if" statement like below
if( isNetworkEnabled )
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0,0, this);
if( isGPSEnabled )
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,1,0, this);