Anda di halaman 1dari 19

Windows Phone 8

Application Lifecycle
http://1drv.ms/OqHDCU
Kevin Kurniawan
Application Lifecycle
Windows Phone memiliki struktur yang komplit dalam
mengeksekusi setiap hal yang terjadi di dalam aplikasi kita. Mulai
dari aplikasi pertama kali dijalankan hingga dinonaktifkan. Seluruh
struktur yang ada di dalam windows phone ini disediakan untuk
memberikan kecepatan pada aplikasi dan windows phone hanya
mengizinkan satu aplikasi yang berjalan dalam satu waktu.
Application Lifecycle
Closing
Launching
Deactivated
Activated
Berikut adalah alur dari sisklus yang ada di windows
phone :
Launching adalah kondisi dimana aplikasi pertama kali dibuka baik
itu dari menu aplikasi yang telah terinstal atau dari menu yang ada di
start screen. Sebaiknya pada kondisi ini aplikasi tidak mengambil data
dari isolated storage atau dari local database karena akan membuat
aplikasi terkesan lama pada saat diaktifkan.
Activated adalah kondisi dimana aplikasi yang disimpan di
background dipanggil kembali.
Deactivated adalah kondisi dimana aplikasi yang sedang running
kita simpan ke bagian background.
Closing adalah kondisi dimana user menekan tombol back di bagian
halaman terakhir sehingga mengakibatkan aplikasi tertutup
Application Lifecycle
Application Lifecycle
<shell:PhoneApplicationService
Launching="Application_Launching" Closing="Application_Closing"
Activated="Application_Activated" Deactivated="Application_Deactivated"/>
Application Lifecycle
Application Lifecycle
Application Lifecycle
Asynchronous Method
Asynchronous method adalah method yang akan berjalan di background atau tidak akan mengganggu proses dari method
lainnya.
Asynchronous Method
private async void TestMethod()
{
}
Asynchronous Method
private async void TestMethod()
{
Uri _uri = new Uri("http://www.controltheweb.com/images/desktop-background-large/MIT.jpg");
myImage.Source = new BitmapImage(_uri);
}
Background Agent
Background agent adalah sebuah fungsi yang disediakan oleh Windows Phone yang digunakan untuk menjalankan
sesuatu pada interval waktu tertentu.
Background Agent
Background Agent
Background Agent
<ExtendedTask Name="BackgroundTask">
<BackgroundServiceAgent Specifier="ScheduledTaskAgent" Name="ScheduledTaskAgent1" Source="ScheduledTaskAgent1" Type="ScheduledTaskAgent1.ScheduledAgent" />
</ExtendedTask>
Background Agent
Solution Explorer References Add Reference Sulotion
Background Agent
protected override void OnInvoke(ScheduledTask task)
{
ShellToast toast = new ShellToast();
toast.Title = "Windows Phone Workshop";
toast.Content = "Notification";
toast.Show();
#if DEBUG_AGENT
ScheduledActionService.LaunchForTest(task.Name, TimeSpan.FromSeconds(60));
#endif
NotifyComplete();
}
Background Agent
PeriodicTask periodicTask;
string periodicTaskName = "MyPeriodicAgent";
private void Application_Closing(object sender, ClosingEventArgs e)
{
periodicTask = ScheduledActionService.Find(periodicTaskName) as PeriodicTask;
if (periodicTask != null)
{
RemoveAgent(periodicTaskName);
}
periodicTask = new PeriodicTask(periodicTaskName);
periodicTask.ExpirationTime = DateTime.Now.AddDays(14);
periodicTask.Description = "This demonstrates a periodic task.";
ScheduledActionService.Add(periodicTask);
#if(DEBUG_AGENT)
ScheduledActionService.LaunchForTest(periodicTask.Name, TimeSpan.FromSeconds(60));
#endif
if (!periodicTask.IsScheduled || periodicTask.ExpirationTime < DateTime.Now)
{
periodicTask.ExpirationTime = DateTime.Now.AddDays(14);
#if(DEBUG_AGENT)
ScheduledActionService.LaunchForTest(periodicTask.Name, TimeSpan.FromSeconds(60));
#endif
}
private void RemoveAgent(string name)
{
try
{
ScheduledActionService.Remove(name);
}
catch (Exception)
{
}
}
Background Agent

Anda mungkin juga menyukai