// This gets called when a client tries to bind to the Service with an Intent and an
        // instance of the ServiceConnection. The system will locate a binder associated with the
        // running Service
        public void OnServiceConnected(ComponentName name, IBinder service)
        {
            // cast the binder located by the OS as our local binder subclass
            LocationServiceBinder serviceBinder = service as LocationServiceBinder;

            if (serviceBinder != null)
            {
                this.binder         = serviceBinder;
                this.binder.IsBound = true;
                Log.Debug("ServiceConnection", "OnServiceConnected Called");
                // raise the service connected event
                this.ServiceConnected(this, new ServiceConnectedEventArgs()
                {
                    Binder = service
                });

                // now that the Service is bound, we can start gathering some location data
                serviceBinder.Service.StartLocationUpdates();
            }
        }