Windows Phone 应用程序的生命周期(二)
一.App.xaml.cs
/// <summary> /// Application 对象的构造函数。 /// </summary> public App() { // 未捕获的异常的全局处理程序。 UnhandledException += Application_UnhandledException; // 标准 XAML 初始化 InitializeComponent(); // 特定于电话的初始化 InitializePhoneApplication(); // 语言显示初始化 InitializeLanguage(); // 调试时显示图形分析信息。 if (Debugger.IsAttached) { // 显示当前帧速率计数器。 Application.Current.Host.Settings.EnableFrameRateCounter = true; // 显示在每个帧中重绘的应用程序区域。 //Application.Current.Host.Settings.EnableRedrawRegions = true; // 启用非生产分析可视化模式, // 该模式显示递交给 GPU 的包含彩色重叠区的页面区域。 //Application.Current.Host.Settings.EnableCacheVisualization = true; // 通过禁用以下对象阻止在调试过程中关闭屏幕 // 应用程序的空闲检测。 // 注意: 仅在调试模式下使用此设置。禁用用户空闲检测的应用程序在用户不使用电话时将继续运行 // 并且消耗电池电量。 PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled; } Debug.WriteLine(string.Format("{0}-app被初始化",DateTime.Now.ToLongTimeString())); } // 应用程序启动(例如,从“开始”菜单启动)时执行的代码 // 此代码在重新激活应用程序时不执行 private void Application_Launching(object sender, LaunchingEventArgs e) { Debug.WriteLine(string.Format("{0}-Launching事件被触发", DateTime.Now.ToLongTimeString())); } // 激活应用程序(置于前台)时执行的代码 // 此代码在首次启动应用程序时不执行 private void Application_Activated(object sender, ActivatedEventArgs e) { Debug.WriteLine(string.Format("{0}-Activated事件被触发", DateTime.Now.ToLongTimeString())); } // 停用应用程序(发送到后台)时执行的代码 // 此代码在应用程序关闭时不执行 private void Application_Deactivated(object sender, DeactivatedEventArgs e) { Debug.WriteLine(string.Format("{0}-Deactivated事件被触发", DateTime.Now.ToLongTimeString())); } // 应用程序关闭(例如,用户点击“后退”)时执行的代码 // 此代码在停用应用程序时不执行 private void Application_Closing(object sender, ClosingEventArgs e) { Debug.WriteLine(string.Format("{0}-Closing事件被触发", DateTime.Now.ToLongTimeString())); }
二.操作方法及输出结果
18:40:22-app被初始化
18:40:31-Launching事件被触发-----(应用程序启动)(例如,从“开始”菜单启动)
点击“启动”按钮,切换到“开始”屏幕
18:42:42-Deactivated事件被触发----(停用应用程序)
点击“后退”按钮,返回到应用程序
18:45:31-Activated事件被触发----激活应用程序(置于前台)
继续点击“后退”
18:48:58-Closing事件被触发-----应用程序关闭(例如,用户点击“后退”)
三附加效果图
清清软件园 http://sillysoft.taobao.com