Well it is a bit complex. There can be multiple listeners to the GPS, each with its own interval etc. For example a user could run Google Maps and Blackberry Maps at the same time. Each would establish a LocationListener. When a listener no longer wants to receive location data there are two options:
Code:
_locationProvider.setLocationListener(null,-1,-1,-1); //registration of any previously set listener is cancelled
_locationProvider.setLocationListener(_listener, 0, -1, -1); //the application wants to receive only provider status updates and not location updates at all.
This is of course all documented in the API documentation.