1-Create a bindable service and implement the necessary Binder
Start your service BEFORE binding to it or in other case if your app is closed the service will also close
2-Expose a public function like StartDownload(url, IUpdateTarget) on your service.
3-Create an interface (IUpdateTarget) with a function like UpdateProgress(somevalues);
4-Implement the IUpdateTarget interface in the View which should receive the update notifications
5-Bind to the service and retrieve the running service's instance
6-Now you have the instance of your service, call to StartDownload passing the URL and the target view for notifications.
7-Whenever you must update the interface from the service call to UpdateProgress from the IUpdateProgress instance passed to the service (the target view).
Beware with cross-threading calls, remember that you must always update interface on main thread.