Background Agent di Windows Phone

Push notification merupakan cara terbaik untuk berinteraksi dengan user ketika aplikasi sedang tidak berjalan dan di waktu yang sama juga menjaga daya tahan baterai. Tetapi dengan fitur push notification memiliki experience yang terbatas untuk memberikan pemberitahuan, contohnya kita tidak bisa menjalankan aplikasi lain seperti mengambil data dari sebuah web service atau membaca sebuah file dari local storage. Intinya kita tidak bisa menjalankannya dalam 2 tindakan sekaligus. Gampangnya di contohkan pada aplikasi ramalan cuaca, tentu update informasi secara terus menerus do belakang layar sangat dibutuhkan di aplikasi sejenis ini.

Background Agent di Windows Phone

Di Windows Phone 7.5 telah di perkenalkan fitur yang dinamakan background agent yang dapat bekerja dibelakang layar walaupun kita menjalankan banyak aplikasi sekaligus. Ada dua tipe dari background agent ini, periodic dan audio. Untuk mengimplementasikannya, kita bisa menambahkannya di new project visual studio, lalu memilih template untuk background agent.

Agent

 

Agent Limits

Ada beberapa batasan dari fitur background agent ini, yang pertama adalah di API nya karena hanya beberapa API yang bisa digunakan untuk background agent ini. Untuk lebih detail API apa saja yang dapat digunakan oleh background agent ini dapat dilihat MSDN documentation.

Batasan kedua adalah memory, background agent tidak bisa menggunakan memory lebih dari 11MB, jika lewat dari itu maka akan diberhentikan. Tentu selama pengembangan/testing aplikasi penting untuk mengecek konsumsi memory dari aplikasi yang dikembangkan agar hal seperti yang telah disebutkan tidak terjadi.

Dan batasa ketiga adalah waktu, background agent akan otomatis disabled setelah 14 hari penggunaan aplikasi.

Periodic Agent

Periodic agent biasanya digunaan ketika kita mengeksekusi operasi kecil tetapi dalam waktu yang sering. Ada beberapa tipe pengeksekusiannya, misalnya setiap 30 menit, 10 menit, dan 25 detik. Periodic agent di identifikasi dengan menggunakan class PeriodicTask, yang berada di namespace Microsoft.Phone.Scheduler.

Reosource intentive Agents

Resource intensive agent dibuat untuk kondisi yang sebaliknya, dengan tugas untuk waktu yang lama adalah kelebihan agent ini. Agent ini dapat berjalan mulai dari 10 menit keatas, tetapi hanya jika hp terhubung dengan wifi dan pengisi battery eksternal.

 

Membuat sebuah background agent

Untuk membuat background agent, kita harus menambahkan project baru dari project aplikasi Windows Phone. Ketika Add New Project, kita akan temukan template yang dinamakan Windows Phone Scheduled Task Agent dari daftar templat. Ketika menambahkannya, project utama akan otomatis ditambahkan class yang dinamakan dengan ScheduleAgent yang merupakan warisan dari class ScheduledTaskAgent. Ketika sampai pada tahap ini, kita sudah siap menambahkan method baru untuk pendukung aplikasi menjalankan fitur background agent.

Method yang digunakan adalah OnInvokde(). Method ini akan dipicu ketika background agent di jalankan. Berikut contoh method yang mengirimkan toast notification dari background agent :

Penting untuk menggaris bawahi method NotifyComplete(), karena method in akan di panggil lagi ketika semua operasi tela berhasil. Method tersebut akan memberi thau sistem operasi bahwa tugasnya telah selesai dan siap untuk melakukan tugas selanjutnya.

Method lainnya adalah Abort(), method ini dipanggil ketika terjadi kesalahan (contohnya ketika proses eksekusi tidak berjalan semestinya) dan user ingin membuka aplikasi untuk menyelesaikannya.

 

Mendaftarkan agent

Background agent merupakan project tersendiri, tetapi harus terdaftar di aplikasi yang kita kembangkan. Untuk mendaftarkannya kita harus menggunakan ScheduleActionService yang merepresentasikan jadwal proses. Ketika itu digunakan, semua background agent akan terdaftar di aplikasi yang kita kembangkan. Berikut contoh code penggunaanya :

 

Menghandle Error

Selain mengetahui bagaimana mendaftarkan background agent di project aplikasi Windows Phone kita, yang perlu ditambahkan lagi adalah kondisi error ketika proses eksekusi tidak berjalan semestinya, sehingga kita dapat meng-handle error yang di maksud program.

Berikut codenya :

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