Understanding the Application LifeCycle of your Silverlight Based Windows Phone 7 (WP7) Applications

Introduction

The Windows Phone 7 platform supports two programming models - Silverlight and XNA. To fully realize the ability to write responsive Silverlight-based WP7 applications, it is critical to understand the application life cycle.

4 Phases of WP7 Application Activity

In a Silverlight-based WP application, there are 4 different phases of the app activity:

  • Launch - User starts the application by pressing its icon
  • Reactivating application by using Back button after navigating to some other application
  • Reactivating application by using Back button immediately after navigating to some other application
  • Deactivation - switching to other application either by pressing Start button or the Back button

To make an application responsive at startup, minimize the actions which take place which help reduce the time it takes for the user to start interacting with the application.

In the application Launch case as well as in the tomb-stoning case, here is the flow of events which takes place and the recommended actions to take at phase:

  • Application constructor - Do not add code here except the default created by Visual Studio
  • Application Launch event - Do not add code here.
  • Page constructor - Assign the view model to the DataContext; also, subscribe to the PageLayoutUpdated event; set a flag indicating the ctor have been invoked
  • View Model Constructor - Do as little as possible here
  • OnNavigatedTo event - Do not block the UI thread. For any function to be called, use BeginInvoke or use a background thread. Here, you handle cases for application launch, and reactivating after tombstoning.
  • PageLayoutUpdated event - Here you have to unsubscribe to the PageLayoutUpdated event; for any additional execution, use BeginInvoke or background thread,
  • OneNavigatedFrom event - this event is only hit when you exit the application. Here, you save the state of the application and clear the flag that the constructor has been called.

If the application is activated but not tombstoned and is re-activated, there are only a couple of events which occur:

  • Activated event
  • OnNavigateTo event - (same as above)

The smaller number of events is because the objects are still in memory and hence the processing to restore state is lesser. Because the objects are still in memory, the OnNavigateTo event hardly takes time.

Summary

In this short article, we saw the different life cycle events which occur in a Silverlight-based Windows Phone application. Hopefully, you will find the information useful in designing fast responsive WP applications.



About the Author

Vipul Vipul Patel

Vipul Patel is a Software Engineer currently working at Microsoft Corporation, working in the Office Communications Group and has worked in the .NET team earlier in the Base Class libraries and the Debugging and Profiling team. He can be reached at vipul_d_patel@hotmail.com

Related Articles

Comments

  • There are no comments yet. Be the first to comment!

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Rocket Mobile® for IBM i is an enterprise mobile application development and deployment platform for customers who rely on the IBM i system. Rocket Mobile for IBM i enables customers to leave proven applications in-place and rapidly repurpose them into new managed and secure mobile applications. Fast, easy creation of mobile, web, and hybrid mobile applications that deploy to any iOS, Android, or Windows mobile phone or tablet Built-in integration for seamless repurposing of existing IBM i applications …

  • Complex hybrid environments can make it difficult to track interdependencies, increasing the risk of disrupting critical business services. In this white paper by EMA, you'll learn how application discovery and dependency mapping can help you: Meet granular targets for availability, cost, and time-to-revenue for cloud services. Accelerate mean time to repair (MTTR) while communicating better with stakeholders. Manage even the most complex hybrid environments more efficiently and effectively Understand the …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date