15 Februari 2012

Activity: Menangani Perubahan Konfigurasi

Beberapa konfigurasi perangkat bisa berubah selama aplikasi dijalankan (misalnya orientasi layar, keyboard, dan bahasa). Ketika terjadi perubahan semacam itu, Android enciptakan ulang activity yang sedang berjalan (sistem memanggil onDestroy(), kemudian dengan segera memanggil onCreate()). Perilaku seperti ini dirancang untuk membantu aplikasi kita beradaptasi terhadap konfigurasi baru, dengan secara otomatis memuat ulang aplikasi dengan sumber daya alternatif yang sudah kita sediakan (misalnya layout yang berbeda untuk orientasi dan ukuran layar yang berbeda).

Jika kita mendesain activity kita dengan tepat untuk menangani sebuah restart karena perubahan orientasi layar dan memulihkan kembali keadaan activity seperti digambarkan di atas, aplikasi kita akan lebih flexible dalam menghadapi event tidak terduga lain dalam siklus hidup activity.

Cara terbaik untuk menangani sebuah restart adalah dengan menyimpan dan memulihkan kembali keadaan activity dengan menggunakan onSaveInstanceState() dan onRestoreInstanceState() (atau onCreate()), sebagaimana di disukusikan di bagian sebelumnya.


Koordinasi activity

Ketika sebuah activity menjalankan activity lainnya, kedua activity tersebut mengalami transisi siklus hidup. Activity pertama akan pause dan stop (tidak stop jika masih terlihat di background), sedangkan activity yang lain di-create. Apabila kedua activity ini berbagi data dari SD Card atau yang lainnya, penting untuk dimengerti bahwa activity pertama tidak akan benar-benar berhenti sebelum activity kedua di ciptakan (create). Dan bukannya proses menjalankan activity kedua mendahului proses penghentian activity pertama.

Urutan dari siklus hidup callback sudah didefinisikan dengan jelas, terutama dua activity berada pada proses yang sama dan salah satu activity menjalankan yang lainnya. Berikut ini adalah urutan operasi yang berjalan ketika activity A menjalankan activity B:

  1. Activity A onPause() metode dieksekusi.
  2. Activity B onCreate(), onStart(), dan onResume() metode dieksekusi berurutan. (Sekarang activiy B mendapatkan fokus user).
  3. Kemudian, jika activity A tidak lagi terlihat di layar, activity tersebut mengeksekusi metode onStop().

Urutan siklus hidup callback yang cukup sederhana ini membantu kita mengatur transisi informasi dari satu activity ke activity lainnya. Sebagai contoh, kita harus menulis ke sebuah database kapan activity pertama berhenti, sehingga activity berikutnya bisa membaca informasi ini, kemudian kita sebaiknya menulis ke database selama onPause(), dan bukannya ketika onStop().



2 komentar:

  1. kelebihan OS android dr pada OS lainnya trletak dr sisi apanya sich???

    dan cara ngoprek2 sistemnya gmn ya???lok isa kasih tutuor ya Boz.... ^_^

    dTunggu jawabannya....

    BalasHapus
    Balasan
    1. Kalau kelebihan secara teknis terus terang saya tidak tahu, karena saya belum pernah mencoba programming di mobile OS lain seperti iOS, Windows mobile, atau bahkan J2ME. Yang saya tahu hanya beberapa kelebihan non teknis saja, misalnya kemudahan mendapatkan tools (software penunjang) pengembangan aplikasi, banyaknya sumber dan tutorial belajar di internet, banyaknya perangkat android di pasaran dan kemudahan pemasaran aplikasi yang dibuat. Sekedar itu saja yang saya tahu.

      Hapus