Jenis-Jenis Service
Service dapat dibagi menjadi dua jenis utama:
1. Started Service
Started Service adalah jenis Service yang dimulai oleh komponen lain, seperti Activity atau Broadcast Receiver, dan akan terus berjalan hingga tugasnya selesai.
Cara Kerja:
- Started Service dimulai dengan memanggil metode startService().
- Service akan berjalan di latar belakang hingga tugasnya selesai atau dihentikan secara manual.
- Setelah tugas selesai, Service akan berhenti secara otomatis.
Contoh kode:
Intent intent = new Intent(this, MyStartedService.class);
startService(intent);
2. Bound Service
Bound Service adalah jenis Service yang terikat ke komponen lain, seperti Activity atau Fragment, dan akan berjalan selama komponen tersebut aktif.
Cara Kerja:
- Bound Service dimulai dengan memanggil metode bindService().
- Service akan berjalan selama ada komponen yang terikat dengannya.
- Jika semua komponen melepaskan ikatan, Service akan berhenti secara otomatis.
Contoh kode:
Intent intent = new Intent(this, MyBoundService.class);
bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE);
Perbedaan Started Service dan Bound Service
Aspek | Started Service | Bound Service |
Cara Memulai | Dimulai dengan startService(). | Dimulai dengan bindService(). |
Durasi | Berjalan hingga tugas selesai atau dihentikan. | Berjalan selama ada komponen yang terikat. |
Komunikasi | Tidak dapat berkomunikasi langsung dengan komponen lain. | Dapat berkomunikasi langsung dengan komponen yang terikat. |
Contoh Penggunaan | Streaming musik, sinkronisasi data. | Pemutar musik, komunikasi real-time. |
Contoh Penggunaan Service dalam Aplikasi
1. Aplikasi Musik:
- Started Service: Memutar musik di latar belakang saat aplikasi tidak aktif.
- Bound Service: Mengontrol pemutaran musik dari Activity atau Fragment.
2. Aplikasi Olahraga:
- Started Service: Melacak lokasi pengguna saat berlari atau bersepeda.
- Bound Service: Menampilkan data lokasi dan kecepatan secara real-time di Activity.
3. Aplikasi Chat:
- Started Service: Mengirim dan menerima pesan di latar belakang.
- Bound Service: Menampilkan pesan baru secara real-time di Activity.
6. Content Provider: Berbagi Data Antar Aplikasi
Content Provider adalah komponen penting dalam aplikasi Android yang memungkinkan aplikasi berbagi data dengan aplikasi lain. Dengan menggunakan Content Provider, Anda dapat memberikan akses ke data aplikasi Anda, seperti daftar kontak, file media, atau database, kepada aplikasi lain.
Content Provider juga memungkinkan aplikasi Anda mengakses data dari aplikasi lain, seperti mengakses daftar kontak pengguna atau galeri foto.
Cara Menggunakan Content Provider
Content Provider menyediakan antarmuka yang terstandarisasi untuk mengakses dan memanipulasi data. Data diakses melalui URI (Uniform Resource Identifier) yang ditentukan oleh Content Provider.
1. Mengakses Data dari Content Provider
Untuk mengakses data dari Content Provider, Anda perlu menggunakan ContentResolver dan URI yang sesuai.
Contoh Mengakses Daftar Kontak:
Uri uri = ContactsContract.Contacts.CONTENT_URI;
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
if (cursor != null) {
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
Log.d(“Contact”, name);
}
cursor.close();
}
2. Menambahkan, Mengubah, atau Menghapus Data
Anda juga dapat menambahkan, mengubah, atau menghapus data melalui Content Provider menggunakan ContentResolver.
Menambahkan Data:
ContentValues values = new ContentValues();
values.put(ContactsContract.Contacts.DISPLAY_NAME, “John Doe”);
Uri newContactUri = getContentResolver().insert(ContactsContract.Contacts.CONTENT_URI, values);
Mengubah Data:
ContentValues values = new ContentValues();
values.put(ContactsContract.Contacts.DISPLAY_NAME, “Jane Doe”);
getContentResolver().update(ContactsContract.Contacts.CONTENT_URI, values, null, null);
Menghapus Data:
getContentResolver().delete(ContactsContract.Contacts.CONTENT_URI, null, null);
Contoh Penggunaan Content Provider
1. Aplikasi Kontak:
- Content Provider memungkinkan aplikasi lain mengakses daftar kontak pengguna.
- Contoh: Aplikasi pesan menggunakan Content Provider untuk memilih kontak penerima pesan.
2. Aplikasi Galeri Foto:
- Content Provider memungkinkan aplikasi lain mengakses foto dan video yang disimpan di perangkat.
- Contoh: Aplikasi media sosial menggunakan Content Provider untuk memilih foto yang akan diunggah.
3. Aplikasi Kalender:
- Content Provider memungkinkan aplikasi lain mengakses jadwal dan acara di kalender pengguna.
- Contoh: Aplikasi pengingat menggunakan Content Provider untuk menambahkan acara ke kalender.