Skip to main content

Komponen Dasar Android (Service)

Pengertian

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 sudah banyak sekali, antara lain:
  • 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. 
Secara umum, terdapat dua bentuk dari service :
1. 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.
2. Bound
Service jenis ini merupakan tipe service yang dijalankan oleh komponen lain, namun saling mengikat. Hubungan yang terjadi antar kedua komponen tersebut seperti clientserver. 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.

LIFE CYCLE SERVICE

Latihan Penerapan Service
1. Untuk melihat jalannya service, buat tampilan seperti dibawah.
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. 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:
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()

Penggunaan Service di Alarm Manager

Adakalanya kita membutuhkan perlu suatu mekanisme untuk mengulang sebuah proses di waktu tertentu. Misalnya, kita ingin memiliki fungsi pengingat (reminder) pada aplikasi event, jadwal tayang film di bioskop, atau aplikasi alarm untuk mengingatkan kita untuk bangun di pagi hari. Disinilah alarm manager berperan penting.
Alarm manager akan memberikan kemudahan bagi aplikasi untuk melakukan operasi berbasis waktu diluar daur hidup aplikasi itu sendiri.
Contohnya seperti yang baru saja disebutkan diatas. Umumnya alarm memiliki beberapa
karakteristik, antara lain :
  • Dapat menjalankan obyek intent berdasarkan waktu dan interval yang ditentukan.
  • Bisa bekerja dengan baik dengan broadcast receiver untuk menjalankan komponen lain seperti service untuk melakukan operasi tertentu.
  • Alarm berjalan diluar daur hidup aplikasi induknya sehingga kita bisa merancang fungsi alarm untuk melakukan sebuah aksi ketika aplikasi sedang tidak dijalankan bahkan ketika peranti dalam keadaan idle atau sleep.
  • Esensi utama dari alarm manager adalah untuk meminimalkan penggunaan resource dan menghindari penggunaan timer dan background service yang berkepanjangan untuk melakukan operasi atau aksi yang dibutuhkan.
Penggunaan alarm manager yang baik adalah dengan menerapkan cara berikut ini:
  • Lakukan hanya untuk proses di lokal
  • Jaga frekuensi alarm yang dijalankan dengan interval yang tidak pendek 
  • Jika tidak terlalu penting, hindari penggunaan tipe alarm yang dapat membangunkan peranti seperti RTC_WAKEUP
  • Jika alarm manager digunakan untuk menjadwalkan scheduling task yang terhubung ke jaringan dan melakukan request ke server, misalnya unduh data terbaru atau sinkronisasi data, maka hindari penggunaan setRepeating() dan gunakan setInExactRepeating() dengan penggunaan tipe alarm berbasis ELAPSED_REALTIME. Pendekatan tersebut merupakan strategi untuk mengelompokkan proses alarm dari aplikasi yang berbeda dengan dijalankan secara bersamaan agar lebih menghemat daya baterai.


Comments

Popular posts from this blog

Materi Workshop Networking IT CAMP UBSI 2019

Implementasi Link Aggregation dan ROS dalam Vlan Kali ini saya akan membahas materi yang di bawakan oleh Bapak Andry Maulana, M.Kom. Materi yang berjudul Implementation Link, Aggregation dan ROS on VLAN. Beliau menjelaskan masalah Virtual Local Area Network atau disebut juga VLAN dimana kita ketahui adalah sebuah model jaringan yang membagi beberapa jaringan secara logikal ke dalam beberapa jalur berbeda tetapi lewat perangkat penghubung yang sama. Kemudian beliau memberikan contoh yaitu VLAN Trunking, InterVLAN Routing dan Hirarki Jaringan Komputer. Virtual Local Area Network VLAN atau Virtual LAN adalah sebuah model jaringan yang membagi beberapa jaringan secara logikal kedalam beberapa jalur yang berbeda tapi tetap lewat perangkat penghubung yang sama Vlan Trunking VLAN Trunking Protokol adalah adalah suatu protokol untuk mengenalkan suatu atau sekelompok VLAN yang telah ada agar dapat berkomunikasi dengan jaringan. VLAN merupakan suatu broadc...

Konsep Running Apps di Android Studio

Running Apps di Emulator dan Device Menjalankan App di Emulator harus memperhatikan beberapa aspek: Cek Aspek Virtualization Virtualization merupakan sebuah teknik untuk menyembunyikan karakteristik fisik dari sumber daya komputer dari bagaimana cara system lain, aplikasi atau pengguna berinteraksi dengan sumber daya tersebut. Hal ini termasuk membuat sebuah sumber daya tunggal (seperti server, sebuah sistem operasi, sebuah aplikasi, atau peralatan penyimpanan terlihat berfungsi sebagai beberapa sumber daya logikal. Pastikan aspek virtualization yaitu prosessor dan sistem operasi dari laptop/PC yang digunakan. ➢ Processor Prosesor Intel: Jika laptop/pc Anda menggunakan prosesor Intel, maka pastikan ia mendukung Intel VT-x, Intel EM64T (Intel 64), dan Execute Disable (XD) Bit functionality. Prosesor AMD: Jika laptop/pc Anda menggunakan AMD, maka pastikan bahwa Laptop/PC support dengan AMD Virtualization (AMD-V) dan Supplemental Streaming SIMD Extensions 3 (SSSE3)...

Fungsi Protokol - Protokol Internet dan Penjelasan IPv4 dan IPv6

A. Fungsi Protokol - Protokol Internet ICMP ICMP (Internet Control Messae Protocol) adalah salah satu protokol inti dari keluarga protokol internet. ICMP utamanya digunakan oleh sistem operasi komputer jaringan untuk mengirim pesan kesalahan yang menyatakan, sebagai contoh, bahwa komputer tujuan tidak bisa dijangkau. Fungsi dan Kegunaannya : Membantu proses error handling / melaporkan apabila terjadi error pada sebuah jaingan. Error merupakan salah satu gejala yang paling mungkin terjadi di dalam sebuah jaringan komputer. Dengan adanya protocol ICMP ini, maka setiap error yang terjadi dapat dihandle langsung oleh protocolini, dimana protocol ICMP ini bertugas untuk melakukan tindakan-tindakan ketika terjadi yang namanya error didalam sebuah jaringan komputer tersebut.  Membantu control procedure atau prosedur pengaturan pada sebuah jaringan. Control procedure atau prosedur pengontrolan juga merupakan tugas dan fungsi utama dari protokol ICMP ini. ICMP bertugas untuk ...