Langsung ke konten utama

Komponen Pada Android Service

Apa itu Service pada Android?

Service adalah komponen aplikasi yang menjalankan operasi tertentu yang bisa berjalan lama pada sistem Android, biasanya service itu berjalan di latar belakang. Service ini tidak menyediakan antarmuka pengguna (UI).

Ada dua macam service pada Android, yaitu :

  • Started

Service yang komponen aplikasinya dimulai dengan memanggil startService(). Service ini akan berjalan selama belum dimatikan atau proses yang dijalankan selesai. Service akan tetap berjalan walaupun komponen yang lain dimatikan oleh sistem Android. Service ini digunakan untuk melakukan proses yang tidak memberikan nilai balik ke komponen yang memanggil. Contohnya seperti mengunduh atau mengunggah berkas.

  • Bound

Service jenis ini merupakan tipe service yang dijalankan oleh komponen lain, namun saling mengikat satu sama lain. Hubungan yang terjadi antar kedua komponen tersebut seperti client-server. Bisa saling menerima response dan menerima request yang ada. Pada service ini dimungkinkan terjadi proses IPC (Interprocess Communication). Service ini akan tetap berjalan di background selama masih ada komponen lain yang mengikatnya. Jika tidak, maka Service akan dimatikan oleh sistem. Aplikasi pemutar musik merupakan salah satu jenis aplikasi yang mengimplementasikan Service jenis ini.

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.

 

• Sebelumnya telah belajar mengenai activity dan implementasinya. Activity adalah komponen yang memberikan pengalaman kepada pengguna secara langsung. Pengguna dapat melihat dan berinteraksi diatasnya.

• Service berada pada sisi yang lain, komponen ini tidak memiliki antarmuka dan bahkan pengguna tidak akan akan tahu bagaimana dia bekerja. Pengalaman yang diberikan oleh service hanya berupa proses yang tidak terlihat. Ia digunakan untuk menjalankan beragam macam proses yang memakan waktu lama.

• Walaupun berjalan secara background, pada dasarnya service dan komponen Android lainnya berjalan pada satu proses dan thread yang sama yaitu main thread atau ui thread. Bekerja di background bukan berarti ia bekerja secara asynchronous. Service tetap membutuhkan thread terpisah jika kita ingin melakukan proses yang membutuhkan komputasi intensif atau yang memakan waktu.

 

Contoh pemanfaatan service

• Aplikasi sosial media atau aplikasi yang memiliki kemampuan untuk menerima push notification. Aplikasi semacam ini pasti memiliki sebuah service yang berjalan dalam posisi stand by untuk selalu menerima pesan yang masuk.

• Aplikasi chat juga membutuhkan service untuk melakukan pengiriman dan menerima pesan yang dikirimkan oleh pengguna.

• Aplikasi pemutar musik juga melakukan hal yang sama. Untuk memberikan pengalaman yang lebih baik kepada pengguna, aplikasi pemutar musik biasanya meletakkan proses streaming atau memainkan musik di komponen service dengan tetap mempertahankan integrasi dengan komponen lain, misalnya notifikasi. Dll

 

Bentuk Service

• Started Service berjenis ini adalah tipe yang dijalankan oleh komponen lain, misal activity. Sekali dijalankan, service ini akan berjalan selama belum dimatikan atau proses yang dijalankan selesai. Sevice akan tetap berjalan walaupun komponen yang lain dimatikan oleh sistem Android. Umumnya penggunaan service ini adalah untuk melakukan proses yang tidak memberikan nilai balik ke komponen yang memanggilnya. Contohnya adalah, mengunduh atau mengunggah berkas.

• Bound Service jenis ini merupakan tipe service yang dijalankan oleh komponen lain, namun saling mengikat. Hubungan yang terjadi antar kedua komponen tersebut seperti client-server. Bisa saling menerima hasil dan menerima request yang ada. Pada service ini dimungkinkan terjadi proses IPC (Interprocess Communication). Service ini akan tetap berjalan di background selama masih ada komponen lain yang mengikatnya. Jika tidak, maka Service akan dimatikan oleh sistem. Aplikasi pemutar musik merupakan salah satu jenis aplikasi yang mengimplementasikan service jenis ini.


Latihan Penerapan Service

1. Untuk melihat jalannya service, buatkan tampilan seperti disamping. 

Nama project : MyService Activity : Empty Activity



2. Lengkapi MainActivity.xml




3. Lengkapi MainActivity.java


4. buat kelas service bernama OriginService dengan cara klik kanan pada package project → New → Service → Service. OriginService akan inherit (extends) kepada kelas Service.

5. Selanjutnya pada dialog yang tampil, isikan nama kelas service yang diinginkan. Di sini kita menamainya sebagai OriginService dan biarkan exported dan enabled tercentang. Klik Finish untuk menyelesaikan proses.


6. Selanjutnya, buka berkas AndroidManifest.xml pada package manifest dan perhatikan isi berkas tersebut. Service yang baru saja kita buat sudah ada didalam tag <application>:


7. BerkasAndroidManifest sudah dibuat secara otomatis. Dengan demikian kita sudah bisa menjalankan kelas service tersebut. Namun, sebelum menjalankan aplikasi, lengkapi kode pada OriginService menjadi seperti berikut :

8. Selanjutnya pada MainActivity.java dicase R.id.btn_start_service tambahkan baris berikut :

Inten mStartServiceIntent = new Intent(MainActivity.this,OrgainService.class);
startService(mStartsIntent);


9. Sehingga kode pada metode inClick() menjadi seperti ini :


10. Sekarang jalankan aplikasi, Klik tombil ‘start service’ dan perhatikan pada lognya. OriginService telah dijalankan

dan tidak akanpernah mati sampai dimatikan oleh system atau metode stopSelf() atau stopService() dijalankan.

11. Baik, sekaraang kita akan menambahkan sebuah inner class AsyncTask, ia seakan-akan menjalankan sebuah proses

secara asynchronous dan mematikan/menghentikan dirinya sendiri dengan memanggil metode stopSelf(). Lengkapi kodenya sebagai berikut :

12. Jalankan aplikasinya. Klik tombol ‘start service’ dan perhatikan log-nya. Service dijalankan secara asynchronous dan
mematikan dirinya sendiri setelah proses selesai.

13. Jika berhasil dijalankan, pada log androiod monitor akan seperti ini: 09-22 09:52:25.028 10209-10209/com.contoh.myserviceapp
D/OriginService: OriginService dijalankan 09-22 09:52:28.074 10209-10209/com.contoh.myserviceapp D/OriginService: StopService 09-22 09:52:28.078
10209-10209/com.contoh.myserviceapp D/OriginService: onDestroy()

Postingan populer dari blog ini

Macam - Macam Fungsi Pada Protocol Serta Kelebihan dan Kekurangan Ipv4 & Ipv6

1. Macam - macam fungsi protocol : A. ICMP (Internet Control Message Protocol) Protokol yang digunakan untuk memberikan kiriman pesan – pesan ke dalam sebuah jaringan, mulai dari mengirimkan pesan error, pesan diterima, hubungan putus atau connection lost, dan sebagainya. Dengan adanya protokol ini, maka jaringan akan mengetahui respon – respon yang terjadi selama konektivitas didalam jaringan itu berlangsung. Fungsi ICMP : -    Membantu proses error handling / melaporkan apabila terjadi error pada sebuah jaringan. -    Membantu control procedure atau prosedur pengaturan pada sebuah jaringan. -    Menyediakan pengendalian error dan pengendalian arus pada network layer atau lapisan jaringan. -    Mendeteksi terjadinya error pada jaringan, seperti connection lost, kemacetan jaringan dan sebagainya. B. POP3 (Post Office Protocol versi 3) Protokol yang memiliki fungsi seperti bis...

Konsep Running Application Emulator dan Device

Android Emulator menyimulasikan perangkat Android di komputer Anda sehingga Anda dapat menguji aplikasi di berbagai perangkat dan level API Android tanpa harus memiliki setiap perangkat fisik. Emulator menyediakan hampir semua kemampuan perangkat Android yang nyata. Anda dapat melakukan simulasi panggilan telepon masuk dan pesan teks, menetapkan lokasi perangkat, melakukan simulasi kecepatan jaringan yang berbeda, melakukan simulasi rotasi dan sensor hardware lainnya, mengakses Google Play Store, dan banyak lagi. Pengujian aplikasi Anda di emulator, dalam beberapa hal, akan lebih cepat dan lebih mudah daripada melakukannya pada perangkat fisik. Contohnya, Anda dapat mentransfer data lebih cepat ke emulator daripada ke perangkat yang terhubung melalui USB. Persyaratan dan rekomendasi Cek Aspek Virtualization Virtualization merupakan sebuah teknik untuk menyembunyikan karakteristik fisik dari sumber daya komputer dari bagaimana cara system lain, aplikasi atau pengguna berinterak...

Pengertian Repeater, Bridge, dan Network Interface Card (NIC)

Pengertian Repeater, Bridge, dan Network Interface Card (NIC) Pengertian Repeater Repeater merupakan sebuah perangkat yang dapat berfungsi untuk menerima sinyal yang didalamnya berisikan data-data pada suatu jaringan tersebut. Jika Anda memiliki koneksi jaringan WiFi di rumah ataupun di kantor, namun Anda mengalami kesulitan untuk menjangkaunya, Repeater merupakan salah satu solusi yang tepat yang dapat Anda gunakan. Dimana jika Anda menggunakan Repeater ini maka jangkauan akan jaringan WiFi akan dapat bisa menjadi luas lagi sehingga memudahkan Anda menemukan koneksi jaringan WiFi tersebut. Repeater tersebut dapat menerima sinyal dan kemudian alat ini memancarkan kembali sinyal yang ada serta identik dengan sinyal asalnya, namun hanya caranya saja yang berbeda. Mengapa demikian? Pada umumnya alat Repeater ini memang dapat memancarkan kembali sinyal yang ada dalam frekuensi yang cukup berbeda dari frekuensi sinyal pada asalnya. Oleh sebab itu, fungsi utama alat ini adalah ...