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事件被触发-----应用程序关闭(例如,用户点击“后退”)

三附加效果图

Windows Phone 应用程序的生命周期(二)Windows Phone 应用程序的生命周期(二)Windows Phone 应用程序的生命周期(二)Windows Phone 应用程序的生命周期(二)