KOMPONEN ANDROID SERVICE
Pengertian Service
• 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
• 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
2 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 dibawah.
Nama project : MyService
Activity : Empty Activity
Anda sudah paham service secara garis besar berikut pemanfaatannya. Sekarang saatnya kita menerapkannya.
1. Baik, buat proyek baru dengan nama MyService. Pilih Empty Activity dengan pilihan default pada set up proyek. Setelah proyek tercipta, lengkapi activity_main.xml dengan contoh seperti ini:
2. Pada MainActivity.java silakan lengkapi kode-nya menjadi sebagai berikut
3. Tampilan yang seharusnya ada pada MainActivity, adalah seperti ini
4. Lanjut, 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. Berkas AndroidManifest 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 di metode onClick() pada case R.id.btn_start_service tambahkan baris berikut :
Intent mStartServiceIntent = new Intent(MainActivity.this, OriginService.class);
startService(mStartServiceIntent);
startService(mStartServiceIntent);
9. Sehingga kode pada metode onClick() menjadi seperti ini :
10. Sekarang jalankan aplikasi. Klik tombol ‘start service’ dan perhatikan pada lognya. OriginService telah dijalankan dan tidak akan pernah mati sampai dimatikan oleh sistem atau metode stopSelf() atau stopService() dijalankan.
11. Baik, sekarang 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 menjadi 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()
sekian dari saya percobaan pembuatan aplikasi pertemuan 6 semoga bermanfaat 😇🙏
NOTE : untuk pembuatan aplikasi " Latihan: Penggunaan Service di Alarm Manager " akan saya berikan dipostingan berikutnya 😁
No comments:
Post a Comment