1. Sebelum memulai
Pengantar
Di unit ini, Anda telah mempelajari WorkManager, yang merupakan library Jetpack untuk pekerjaan latar belakang yang dapat ditangguhkan. Pekerjaan latar belakang ini menjamin aplikasi untuk tetap berjalan meskipun Anda menutup aplikasi sumbernya.
Saat mempelajari WorkManager, Anda telah mempelajari cara menentukan pekerjaan di class Pekerja, cara membuat WorkRequest untuk Pekerja, serta cara mengantrekan dan menjadwalkan pekerjaan.
Dalam set latihan ini, Anda akan menggunakan konsep yang telah Anda pelajari untuk meningkatkan kualitas aplikasi Water Me!.
Kode solusi tersedia di akhir. Untuk mendapatkan hasil maksimal dari pengalaman belajar ini, cobalah untuk mengimplementasikan dan memecahkan masalah sebanyak mungkin sebelum melihat kode solusi yang diberikan. Di waktu inilah Anda akan belajar paling banyak.
Prasyarat
- Kursus Dasar-Dasar Android dengan Compose melalui codelab WorkManager dan Pengujian Lanjutan
Yang akan Anda butuhkan
- Komputer yang memiliki akses internet dan Android Studio
Yang akan Anda build
Dalam set latihan ini, Anda akan menggunakan konsep yang telah Anda pelajari untuk meningkatkan kualitas aplikasi Water Me!.
Aplikasi saat ini menampilkan daftar tanaman dalam daftar scroll. Saat Anda mengetuk tanaman, aplikasi memungkinkan Anda menyetel pengingat untuk menyirami tanaman.
Meskipun Anda dapat memilih jangka waktu pengingat, notifikasi pengingat tidak ditampilkan.
Tugas Anda adalah mengimplementasikan pekerjaan latar belakang untuk menampilkan notifikasi pengingat.
Setelah Anda menyelesaikan kode, aplikasi dapat menampilkan notifikasi pengingat setelah durasi waktu yang dipilih berlalu.
2. Mendapatkan kode awal
Untuk memulai, download kode awal:
Atau, Anda dapat membuat clone repositori GitHub untuk kode tersebut:
$ git clone https://github.com/google-developer-training/basic-android-kotlin-compose-training-waterme.git $ cd basic-android-kotlin-compose-training-waterme $ git checkout starter
Anda dapat menjelajahi kode untuk aplikasi Water Me! di repositori GitHub ini.
Menjalankan kode awal
Untuk memahami kode awal, selesaikan langkah-langkah berikut:
- Buka project dengan kode awal di Android Studio.
- Jalankan aplikasi di perangkat Android atau emulator.
Kini Anda siap untuk memulai coding!
3. Menjadwalkan notifikasi menggunakan WorkManager
Fungsi untuk aplikasi Water Me! sebagian besar diterapkan kecuali kemampuan untuk menjadwalkan notifikasi pengingat.
Kode untuk membuat notifikasi ada di file WaterReminderWorker.kt
, yang ada di paket pekerja. Class WaterReminderWorker
memperluas class CoroutineWorker
dan kode untuk membuat notifikasi berada di dalam metode doWork()
.
Dikarenakan notifikasi mungkin merupakan topik baru bagi Anda, kode ini sudah selesai.
override suspend fun doWork(): Result {
val plantName = inputData.getString(nameKey)
makePlantReminderNotification(
applicationContext.resources.getString(R.string.time_to_water, plantName),
applicationContext
)
return Result.success()
}
Tugas Anda adalah membuat OneTimeWorkRequest
yang memanggil metode ini dengan parameter yang benar dari WorkManagerWaterRepository
.
Untuk mendapatkan bantuan tambahan, lihat Pekerjaan Latar Belakang dengan WorkManager.
Membuat permintaan pekerjaan
Untuk menjadwalkan notifikasi, Anda harus mengimplementasikan metode scheduleReminder()
dalam file WorkManagerWaterRepository.kt
.
- Buat variabel bernama
data
denganData.Builder
. Data harus terdiri dari nilai string tunggal denganWaterReminderWorker.nameKey
sebagai kuncinya danplantName
yang diteruskan kescheduleReminder()
sebagai nilainya. - Buat permintaan pekerjaan satu kali dengan class
WaterReminderWorker
. Gunakanduration
danunit
yang diteruskan ke fungsischeduleReminder()
dan tetapkan data input ke variabel data yang Anda buat. - Panggil metode
enqueueUniqueWork()
workManager
. Teruskan nama tanaman yang disambungkan dengan durasi, gunakanREPLACE
sebagaiExistingWorkPolicy
, dan objek permintaan pekerjaan.
Sekarang aplikasi Anda seharusnya sudah berfungsi sesuai dengan yang diharapkan.
4. Tantangan tambahan (opsional)
Untuk latihan coding tambahan, ubah opsi durasi waktu menjadi seperti berikut:
- 5 detik
- 1 menit
- 2 menit
- 3 menit
Setelah selesai, uji setiap durasi untuk memastikan bahwa kode tersebut sudah berfungsi seperti yang diharapkan.
5. Mendapatkan kode solusi
Untuk mendownload kode codelab yang sudah selesai, Anda dapat menggunakan perintah berikut:
$ git clone https://github.com/google-developer-training/basic-android-kotlin-compose-training-waterme.git $ cd basic-android-kotlin-compose-training-waterme $ git checkout main
Atau, Anda dapat mendownload repositori sebagai file ZIP, lalu mengekstraknya, dan membukanya di Android Studio.
Jika Anda ingin melihat kode solusi untuk codelab ini, lihat kode tersebut di GitHub.