WP8点击桌面图标快速恢复应用

摘要:
RootFrame=newPhoneApplicationFrame();}boolisReset=false;}elseif(e.NavigationMode==NavigationMode.New&isReset){isReset=false;=null){;

如何实现在WindowsPhone8 应用程序中 点击了 Windows logo 后 重新在应用程序列表中单击该程序图标 快速启动应用程序

示例代码 下载

1. 在App.cs 文件中修改添加一下代码

   #region 电话应用程序初始化

        // 避免双重初始化
        private bool phoneApplicationInitialized = false;

        // 请勿向此方法中添加任何其他代码
        private void InitializePhoneApplication()
        {
            if (phoneApplicationInitialized)
                return;

            // 创建框架但先不将它设置为 RootVisual;这允许初始
            // 屏幕保持活动状态,直到准备呈现应用程序时。
            RootFrame = new PhoneApplicationFrame();
            RootFrame.NavigationFailed += RootFrame_NavigationFailed;

            RootFrame.NavigationFailed += RootFrame_NavigationFailed;

            RootFrame.Navigated += CompleteInitializePhoneApplication;
            RootFrame.Navigated += CheckForResetNavigation;

            RootFrame.Navigating += RootFrame_Navigating;

            // 确保我们未再次初始化
            phoneApplicationInitialized = true;
        }

        bool isReset = false;
        void RootFrame_Navigating(object sender, NavigatingCancelEventArgs e)
        {
            //Resest验证判断 (此处会执行两次)
            if (e.NavigationMode == NavigationMode.Reset)
            {
                isReset = true;
            }
            else if (e.NavigationMode == NavigationMode.New && isReset)
            {
                isReset = false;
                e.Cancel = true; // 取消导航到新页面s
                RootFrame.Navigated -= ClearBackStackAfterReset; // 取消导航完成事件(否则会直接退出程序)
            }
        }

        void CompleteInitializePhoneApplication(object sender, NavigationEventArgs e)
        {
            if (RootVisual != RootFrame)
                RootVisual = RootFrame;
            RootFrame.Navigated -= CompleteInitializePhoneApplication;
        }

        void CheckForResetNavigation(object sender, NavigationEventArgs e)
        {
            if (e.NavigationMode == NavigationMode.Reset)
                RootFrame.Navigated += ClearBackStackAfterReset;
        }
        private void ClearBackStackAfterReset(object sender, NavigationEventArgs e)
        {
            RootFrame.Navigated -= ClearBackStackAfterReset;

            if (e.NavigationMode != NavigationMode.New)
                return;

            while (RootFrame.RemoveBackEntry() != null)
            {
                ;
            }
        }

        #endregion

2.在WMAppManifest.xml 中添加 ActivationPolicy="Resume"

  <Tasks>
      <DefaultTask Name="_default" NavigationPage="MainPage.xaml" ActivationPolicy="Resume"/>
    </Tasks>

WindowsPhone技术交流群:157153754

免责声明:文章转载自《WP8点击桌面图标快速恢复应用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇让.net程序运行在没有framework的机器上有的句子不长,却能鼓舞我们,成为我们坚持下去的动力下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Ubuntu 12.04出现"device not managed"错误

新装的Ubuntu 12.04,本来无线网络连接好好的,但是在重启了一次unity界面之后,网络连接那个地方就一直显示一个扇形,点开后的下拉列表里面一个无线网络都看不见,但是明明应该有一大摞才对,郁闷之中,发现"Wireless Networks"菜单项下面有一个"device not managed"的提示,于是顺手在Mac Air上放狗搜了一下,解决方...

IIS 负载均衡(ARR)

Application Request Route:应用程序请求路由 1.下载安装web平台安装程序   微软官网搜索 “web平台安装程序” 只能找到 “web平台安装程序3.0” ,已经过时,不兼容大部分系统,不要下载被误导。   可以搜索 “WebPlatformInstaller” 下载安装  或者  在IIS服务器下载,如下      获取最新版...

Android 应用程序之间内容分享详解(一)

一个Andoird应用程序的重要的地方是他们有相互沟通和整合的能力,一个应用程序可以和另一个应用程序交互,接下来我们来看看Android应用之间的内容分享 当你构建Intent的时候,必须要指定Intent的Action触发,定义Intent的Action例如ACTION_SEND,你大概可以猜到指定Action为ACTION_SEND的Intent的作用...

linux后台运行nodejs项目

1.安装pm2,这里默认你已经安装了node.js和npm npm install pm2 -g  2.创建软连接  1)全局path路径 echo $PATH  2)pm2安装路径 安装pm2时,可看到pm2安装路径 3)建立软连接 ln -s /usr/sbin/nodejs/bin/pm2 /usr/local/bin/ # 前一个为pm2安装...

Repeater的Command操作

Repeater的Command操作 1、ItemCommand事件 :在Repeater中所有能触发事件的控件,都会来触发这一个事件 后台创建:在Page_Load中 Repeater1.ItemCommand += ,然后双击Tab键创建 2、CommandName : 判断点击的是什么按钮, 后台调用:e.CommandName 3、CommandAr...

iOS 开发中常见的错误日志处理

Outline如何获得crash日志如何解析crash日志如何分析crash日志     1. iOS策略相关     2. 常见错误标识     3. 代码bug一、如何获得crash日志当一个iOS应用程序崩溃时,系统会创建一份crash日志保存在设备上。这份crash日志记录着应用程序崩溃时的信息,通常包含着每个执行线程的栈调用信息(低内存闪退日志例...