Windows Phone Application Life Cycle

Pada sharing kali ini akan dibahas mengenai Windows Phone Application Life Cycle. Kenapa hal ini penting untuk diketahui selama fase pengembangan ? Ini agar aplikasi yang diinginkan benar-benar berjalan sesuai dengan target developer.

Cover

image1Aplikasi mobile memiliki siklus hidup berbeda dengan aplikasi desktop tradisional umumnya, hal itu karena mereka memiliki kebutuhan yang berbeda, seperti power management dan performance optimization. Jika kita masih menggunakan cara tradisonal pada mobile hal ini akan berakibat pada listrik yang dibutuhkan akan menguras baterai sangat cepat. Plus, jika kita membuka terlalu banyak aplikasi, kita akan mengalami masalah kinerja parah pada sistem yang akan menurunkan user experience nya.

Gambar berikut menjelaskan siklus hidup aplikasi Windows Phone agar memenuhi kondisi yang dibutuhkan:

Windows Phone Lifecycle
Windows Phone Lifecycle

Saat aplikasi dijalankan, apalikasi dapat di  suspended (ditangguhkan) setiap saat. Sebagai contoh, pengguna dapat tekan tombol Start atau tekan pemberitahuan untuk membuka aplikasi lain. Dalam hal ini, aplikasi yang “frozen” (The dormant state); itu di preserved (diawetkan) dalam memori, tetapi semua operasi akan dihentikan.

Dalam kasus ini, aplikasi menggunakan system memori, tetapi CPU nya tidak digunakan. Dengan cara ini, aplikasi lain dapat menggunakan sumber daya yang tersedia tanpa terkendala masalah kinerja. Ketika pengguna memutuskan untuk kembali ke aplikasi (dengan menggunakan tombol Back atau switcher), misalnya mengembalikannya dari memori dan operasi sebelumnya akan direstart.

image2Jika pengguna bermain dengan device-nya dalam waktu yang lama, dan terlalu banyak aplikasi yang dibuka sehingga tidak cukup memori yang tersisa untuk menjaga aplikasi lain. Dalam hal ini, sistem operasi dapat mulai untuk “kill” aplikasi yang telah terbengkalai agar membebaskan beberapa memori untuk yang aplikasi baru, sehingga aplikasi-aplikasi yang terbengkalai tadi akan dimasukkan ke tombstoned.

Tombstone
Tombstone

Untuk memberikan pengguna smooth experience seperti ketika aplikasi ditangguhkan, developer harus memiliki kemampuan untuk menyimpan ketika aplikai dalam keadaan tombstoned dan mengembalikannya lagi nanti. Ketika pengguna membuka aplikasi tombstoned, mereka akan menemukan aplikasi pada keadaan yang tepat seperti sebelumnya, seolah-olah ini tidak pernah ditutup.

Pengalaman tombstoning adalah satu-satunya yang tersedia di Windows Phone 7, tetapi hal ini sering menyebabkan user experience yang buruk. Karena aplikasi tewas, ketika aplikasi dibutuhkan dan digunakan kembali, menyebabkan waktu loading lebih lama.

Pada Windows Phone 7.5, Microsoft telah memperkenalkan Konsep Fast Application Switching yang telah diterjemahkan ke dalam lifescycle saat ini, di mana aplikasi diletakkan dalam keadaan aktif dan di-kill hanya jika diperlukan. Berdasarkan informasi ini, kita dapat memahami bahwa aplikasi tidak dapat berjalan di background-ketika aplikasi di-suspended, semua operasi yang sedang berjalan akan di batalkan.

Kondisi ini bisa kita temukan pada file App.xaml.cs dalam event handler seperti:

More detail:

 

Referensi: 

 

Controlling Life Cycle

Kita bisa mengontrol Application Life cycle menggunakan class PhoneApplicationService yang mana ini telah dideklarasikan didalam file App.xaml yang ada didalam lifeframe object:

Seperti yang kita lihat, class PhoneApplicationService telah terdapat property untuk mentahui event yang ada di App.xaml.cs seperti:

Seperti gambar sebelumnya di Windows Phone Lifecycle ada penjelasan tentan “save state” dan “restore state”, secara umum inilah yang mengatur event yang dijelaskan tadi. State disimpan ketika Application_deactived berjalan dan dikembalikan lagi ketika Application_Actived di jalankan. Berikut salah satu script untuk membuktikannya:

Fast App Resume

Windows Phone 8 telah menggunakan fitur baru yang bernama FastAppResume, yang mana ini bisa diaktifkan kembali ke alamat proses yang sebelumnya digunakannya. Gampangnya, jika aplikasi yang dalam kondisi suspended, aplikasi nantinya akan bisa gunakan kembali secara cepat dan maksimal.

Sebenarnya Fast App Resume ini tidak disediakan secara default, untuk itu harus ada perkerjaan tambahan karena defaultnya Windows Phone tempalte masih menggunakan lifescyle yang lama.

Langkah pertam yang harus dilakukan adalah dengan mengubah file manifestnya. Oleh karena itu kita harus mengeditnya secara manual melalui file tersebut. Untuk melakukannya, klik kanan file WMAppManifest.xaml yang ada didalam folder Properties lalu pilih view code.

Didalamnya kita akan menemukan sebuah node yang bernama Default Task yang mana ini yang akan diload pertama kali saat start. Kita haru menambahkan attribut baru yangebrnama Activation Policy untuk diset pada nilai yang ada saat Resume, Contohnya:

Semoga Informasinya Bermanfaat! 😉

Iklan

Good People write good comments ..

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s