Mengelola siklus hidup fragment memiliki banyak kesamaan dengan mengelola siklus hidup activity. Sama halnya dengan activity, fragment juga bisa berada pada tiga keadaan (state), yaitu:
Sama juga dengan sebuah activity, kita bisa menjaga state (keadaan) dari sebuah fragment menggunakan sebuah Bundle
, andaikata proses activity dimatikan dan kita perlu mengembalikan keadaan fragment ketika activity dibuat ulang. kita bisa menyimpan keadaan fragment selama callback onSaveInstanceState()
milik fragment dan mengembalikannya pada onCreate()
, onCreateActivity
, atau onActivityCreated()
.
Perbedaan yang paling signifikan antara siklus hidup activity dan fragment adalah penyimpanan pada masing-masing back stack. Sebuah activity ditempatkan ke back stack activity yang dikelola oleh sistem ketika dia dihentikan. Namun, sebuah fragment ditempatkan dalam back activity yang dikelola oleh activity induk hanya ketika kita secara eksplisit meminta penyimpanan instansinya, dengan memanggil addToBackStack()
pada saat transaksi yang menghapus fragment.
Untuk masalah-masalah lainnya, mengelola siklus hidup fragment serupa dengan mengelola siklus hidup activity. Jadi, latihan mengelola siklus hidup activity juga bisa diterapkan ke fragment. Yang perlu dimengerti adalah bagaimana siklus hidup activity berdampak dengan siklus hidup fragment.
Berkoordinasi dengan siklus hidup activity
Siklus hidup activity yang menjadi tempat hidup fragment secara langsung berdampak kepada siklus hidup fragment, jadi setiap ada callback siklus hidup pada activity juga menghasilkan callback siklus hidup ke setiap fragment. Misalnya, ketika activity menerima onPause()
, setiap fragment dalam activity juga menerima onPause()
.
fragment memiliki beberapa callback siklus hidup tambahan, yang menangani interaksi unik antara fragment dengan activity untuk melakukan beberapa pekerjaan, misalnya membangun dan menghancurkan UI fragment. Metode callback tambahan yang dimaksud antara lain:
onAttach()
onCreateView()
onActivityCreated()
onCreate()
sudah mengembalikan nilai.onDestroyView()
onDetach()
Aliran dari siklus hidup fragment, sebagaimana dipengaruhi oleh siklus hidup activity induknya, dapat digambarkan dengan gambar di atas. Gambar tersebut direferensi dari http://developer.android.com/guide/topics/fundamentals/fragments.html#Lifecycle. Dalam gambar tersebut terlihat bagaimana masing-masing urutan activity menentukan metode callback apa yang bisa diterima fragment. Sebagai contoh, ketika activity menerima callback onCreate()
, sebuah fragment dalam activity tesebut hanya dapat menerima metode onActivityCreated()
.
Setelah activity mencapai keadaan berjalan, kita bisa bebas menambahkan dan menghapus fragment dalam activity. Yang demikian itu hanya pada saat activity berada dalam keadaan dijalankan. Dan bagaimanapun juga, ketika activity tidak dijalankan lagi, fragment juga dipaksa meneruskan siklus hidupnya oleh acitivity.
Tweet
om, tulisan ente bagus..
BalasHapussampe ane ctrl+s semua yang berhubungan dengan android..
masi langka lho tutor ebook andro yg pake fragmeent..
cuma usul sih, kalo mau semua tutor ente ente ebookin..
ane setia nunggukalo ada..
bisa hub fb ane: https://www.facebook.com/YuDha.praditya
ane tunggu, thanks a lot...