"หากคุณเริ่มบริการ Android ด้วยstartService(..)บริการนั้นจะยังคงทำงานต่อไปจนกว่าคุณจะเรียกใช้อย่างชัดเจนstopService(..)มีเหตุผลสองประการที่ระบบสามารถเรียกใช้บริการได้หากมีคนโทรContext.startService()เข้าระบบจะดึงข้อมูลบริการ (สร้างและเรียกonCreate()ใช้เมธอดหาก จำเป็น) จากนั้นเรียกonStartCommand(Intent, int, int)ใช้เมธอดด้วยอาร์กิวเมนต์ที่ไคลเอ็นต์ให้มาบริการจะทำงานต่อไปจนกว่าจะมีการเรียกContext.stopService()หรือstopSelf()ถูกเรียกโปรดทราบว่าการเรียกหลายครั้งที่Context.startService()จะไม่ซ้อนกัน (แม้ว่าจะส่งผลให้มีการเรียกที่ตรงกันหลายครั้งonStartCommand()) ดังนั้นจึงไม่มี ไม่ว่าจะเริ่มบริการกี่ครั้งก็ตามจะหยุดบริการหนึ่งครั้งContext.stopService()หรือวิธีการเพื่อให้แน่ใจว่าบริการจะไม่หยุดจนกว่าจะมีการประมวลผล Intent เริ่มต้น stopSelf()ถูกเรียกอย่างไรก็ตามบริการต่างๆสามารถใช้บริการได้stopSelf(int)
ไคลเอ็นต์ยังสามารถใช้Context.bindService()เพื่อรับการเชื่อมต่อแบบถาวรกับบริการ นี้เช่นเดียวกันสร้างบริการถ้าไม่ได้ทำงานแล้ว (เรียกonCreate()ในขณะที่การทำเช่นนั้น) onStartCommand()แต่ไม่ได้โทร ไคลเอนต์จะได้รับIBinderออบเจ็กต์ที่บริการส่งคืนจากonBind(Intent)เมธอดของมันทำให้ไคลเอนต์สามารถโทรกลับไปที่บริการได้ บริการจะยังคงทำงานตราบเท่าที่มีการสร้างการเชื่อมต่อ (ไม่ว่าไคลเอ็นต์จะยังคงมีการอ้างอิงในบริการหรือไม่IBinderก็ตาม) โดยปกติการIBinderส่งคืนจะเป็นของอินเทอร์เฟซที่ซับซ้อนซึ่งถูกเขียนใน AIDL
บริการสามารถเริ่มต้นและเชื่อมต่อกับบริการได้ ในกรณีเช่นนี้ระบบจะให้บริการทำงานต่อไปตราบเท่าที่เริ่มทำงานหรือมีการเชื่อมต่ออย่างน้อยหนึ่งรายการกับContext.BIND_AUTO_CREATEแฟล็ก เมื่อสถานการณ์เหล่านี้ไม่เกิดขึ้นระบบonDestroy()จะเรียกใช้วิธีการของบริการและบริการจะสิ้นสุดลงอย่างมีประสิทธิภาพ การทำความสะอาดทุกชนิด (หยุดกระทู้, ยกเลิกการลงทะเบียนรับ) ควรจะเสร็จสมบูรณ์เมื่อกลับมาจากonDestroy()."