首先简要回顾下启动器与选择器(Launchers & Choosers):
Windows Phone 应用程序执行模型决定了应用程序只能在自己的沙盒(Sandbox)里面运行,应用程序不能访问其他存储信息,例如联系人的信息等;应用程序不可以直接调用其他功能,例如打电话和短消息功能等。启动器和选择器为应用程序提供间接访问这些功能的方法。启动器和选择器运行时,系统可能终止当前的应用程序。
启动器:启动一个内置的程序提供给用户使用,不会返回任何数据给应用程序。内置的启动器有:
选择器:启动一个内置的程序给用户使用,返回一些数据给调用的程序。内置的选择器有:
关于如何使用启动器和选择器,请参考DebugLZQ前面的博文。下面进入重点,
启动器和选择器的运行模式:
重点注意的是,在Task运行的时候,应用程序可能tombstone也可能没有,肯没有tombstone的tasks如下:
当task执行完毕后,原有应用程序会被重新激活,如果应用成功女婿没有被tombstone,那么还是运行原有的实例;如果被tombstone了,则运行在新的实例中。
应用程序再次激活的顺序:调用Application_Actived()函数;如果程序曾被tombstone,调用页面的构造函数;选择器的Completed时间处理函数;如果重新加载了,调用OnNavigatedTo()函数。是否tombstone的区别在于是否调用App和页面的构造函数,因此成功女婿逻辑最好不要放到构造函数中,而是放到Application_Actived()和OnNavigationTo()中恢复状态信息。
结束语:总结下吧~本文首先简要回顾下启动器与选择器(Launchers & Choosers)的相关操作,然后重点介绍了启动器与选择的运行模式下应用程序再次激活的顺序以及是否tombstone的运行模式的区别...
关于启动器和选择器,具体请参见MSDN:http://msdn.microsoft.com/zh-cn/library/ff955600(v=vs.92).aspx