wp应用程序总体的状态包括:
前台运行----->休眠------>逻辑删除------->程序终止
前台运行----->程序终止
术语:
向前导航: 从已安装列表、“开始”磁贴、点Toast通知启动应用程序,
该程序为一个新的应用程序实例。
打开新的页面,该页面为一个新的页面实例。
向后导航: 按硬件“返回”或者向后导航之前运行过的应用程序页面,
该页面为一个已经存在的实例。
应用程序状态:应用程序的状态。
应用程序事件:Launching、Deactivated、Activated、Closing事件,
保存在Application对象中。
Launching:启动新的应用程序,新应用程序实例。
Deactivated:导航出应用程序、
按“开始”或启动其他应用程序时,
或者锁定屏幕时(未禁用应用程序空闲检测)。
Activated: 从休眠状态或者逻辑删除状态返回,
或者第一次运行,
通过IsApplicationInstancePreserved属性判断是从
休眠状态还是从逻辑删除状态返回。
为true:从休眠状态;
为false:从逻辑删除状态。
Closing: 关闭应用程序时触发。
页面状态: 页面的状态。
页面事件:OnNavigateTo、OnNavigateFrom事件,
保存在PhoneApplicationPage对象中。
OnNavigateTo:导航到页面时触发。
OnNavigateFrom:导航离开时触发。
休眠: 导航出应用程序(尚未关闭),引发Deactivated事件,
应用程序处于休眠状态,
所以线程将停止。应用程序仍然完好的保留在内存中。
逻辑删除:内存不够时,操作系统将逻辑删除休眠的程序。
该程序将终止,应用程序的导航信息将保留。
应用程序状态保留:在用户未关闭应用程序,离开并再次返回后,
应该保持该程序状态, 如果该程序是从休眠状态返回,
则其状态将自动保持,如果该程序是从逻辑删除
状态返回,则需要从状态字典中读取状态,
因此也需要在离开该程序时,将状态保存到状态字典中。
即:
在Deactivated时,将状态保存到State里;
在Activated时,将状态从State里读取出来。
注:State为PhoneApplicationService属性。
页面状态保留:类似应用程序状态保留,
即:
在OnNavigatedFrom时保存到State里;
在OnNavigatedTo时从State里读取。
注:该State为PhoneApplicationPage中的属性。