Service adalah komponen yang berjalan di latar belakang untuk melakukan proses tertentu tanpa perlu berinteraksi dengan pengguna. Misalnya, service mungkin memainkan musik di latar belakang saat pengguna berada dalam aplikasi yang berbeda, atau mungkin mengambil data melalui jaringan tanpa menghalangi interaksi pengguna dengan activity. Sebuah service pada dasarnya dapat mengambil dua pilihan:
Started, Sebuah Service mulai dijalankan ketika pada suatu komponen aplikasi, seperti activity memulai dengan memanggil startSrvice(). sekali dijalankan, Sebuah service dapat berjalan secara background tanpa batas, bahkan jika komponen yang memulainya di matikan.
Bound, Sebuah Service terikat apabila komponen aplikasi mengikat dengan memanggil bindService(). Sebuah service terikat memberikan antarmuka client-server yang memungkinkan komponen untuk berinteraksi dengan service, mengirim permintaan, mendapatkan hasil, dan bahkan melakukannya lintas proses dengan interprocess communication (IPC).
Perlu diingat, Service berjalan di Thread Utama dari proses hostingnya. Service tidak membuat Thread sendiri dan tidak berjalan di proses terpisah. Kecuali jika anda menetapkannya.
Jika service anda akan melakukan pekerjaan yang banyak membutuhkan CPU atau operasi pemblokiran (seperti pemutaran MP3 atau jaringan), buat Thread baru dalam layanan untuk melakukan pekerjaan itu. Dengan menggunakan Thread terpisah, anda akan mengurangi risiko kesalahan Aplikasi Tidak Merespons (Application Not Responding/ANR) dan Thread utama aplikasi bisa terus disediakan untuk interaksi pengguna.
Sumber :www.sinaryuda.web-id
harryridwanramadan.wordpress-com
medium-com