Hi Gaes, kesempatan kali ini saya ingin berbagi pengalaman mengatasi bug official android ulah si orang-orang India ini gaes.
Sepertinya mereka mulai abai terhadap dampak buruk yang ditimbulkan dari inovasi-inovasi mereka, padahal era sebelum di dominasi orang india, Android tampak elegan dan smooth dari masa ke masa disetiap perkembangannya.. tapi kali ini, banyak sekali bug2x kampret yang saya temui dan saya harus menggunakan ilmu dukun untuk mengatasinya, salah satunya terkait:
override fun onSaveInstanceState(outState: Bundle)
override fun onRestoreInstanceState(savedInstanceState: Bundle)
Bagimana tidak, bug ini saya temui di tahun 20 May 2024 setelah dikomplain oleh klien kami karena mendapati UX yang tidak seperti biasanya.
Akhirnya saya menyimpulkan sendiri bahwa kedua override tersebut sudah dilenyapkan dari lifecycle Android, sehingga apa boleh buat, saya harus menggunakan metode manual untuk menyimpan UI state yang saya kekendaki.
Langkah 1 - Inisialisasi Variable Bundle via onCreated
class Abc : Activity{ private var savedSate: Bundle? = null override fun onCreate(savedInstanceState: Bundle?) { //inisialisasi di sini savedSate = savedInstanceState } }
Langkah 2 - Simpan UI State Anda
private fun saveUIState(){ rvState = listManager?.onSaveInstanceState() rvStateChild = childManager?.onSaveInstanceState() savedSate?.putParcelable(RV_STATE, rvState) savedSate?.putParcelable(RV_STATE_CHILD, rvStateChild) }
Langkah 3 - Restore UI State Anda
private val prepareHistoryDetail = Observer<ResponseWeeklyReportMkt> { rvState?.let { listManager?.onRestoreInstanceState(rvState) } }