Windows Phone 8.1SDK新特性预览
- 前言
Windows Phone 8.1的预览版将在近期推送,WP 8.1的SDK也已经进入到RC阶段,可以从这里安装。本次更新的SDK被直接集成到了VS2013Update2里面,不再是单独的安装包。这就意味着我们要先把Windows从8升级到8.1,再把VS从2012升级到2013。又是折腾了一个够。可能有人说这个Update2还是RC版,要等到Release放出。我觉得这个安装包就是Release了,要等WP8.1出来后再改名儿,要不WP8.1还没出,SDK的Release先放出来了容易让人诟病。这篇文章就来讨论一下那些在WP8.1SDK中的新特性们。
- 创建应用界面
Universal Apps是一个统一的项目,可以将Windows Store和Windows Phone 8.1创建在一个项目中,直接用一套Core,两个UI。这绝对是一个非常有用的功能。上面的项目模板中你感觉到陌生的可能是Hub App,其实就是之前的Panorama项目,名字被改成了Hub。这次我们就来创建一个Windows Phone8.1的项目。而且只能创建WP8.1的项目,不像VS2012一样可以选择创建7.1还是8.0的项目。我想微软可能是出于目前所有8.0的手机都可以免费升级到8.1的考虑,不过我想今后的一段时间8.0的项目还将是主流。
上面这张图就是创建好的项目了。首先你感觉到的也是最大的变化就是所有的命名空间怎么都是Windows Store里的,这就是前面提到的存在Universal App的原因。在WP8.1的SDK中所有的命名空间简直大换血,完全和Windows Store统一,不再是单独的一套API命名。不光是命名空间,这次变更做的非常之彻底,彻底到连Windows Store中的控件都直接可以再WP中使用,比如,FlipView, GridView, ListView, RichEditBox, PasswordBox, SemanticZoom。
2、应用生命周期
为了尽可能的重用WP中的代码,应用可以在多任务列表里关闭。所以WP的生命周期有了非常大的变化,总共有三种状态Running、Suspended、NotRunning。
你的应用可能从多种途径启动,可能是用户直接启动或者是从tile启动。在进入到Running状态之前应用会进入Activated状态,在这个状态我们可以判断应用的上一个状态,从而判断是否有上次退出之前保存的数据。重写OnLaunched事件,这个事件在每次启动应用的时候被执行。
async protected override void OnLaunched(LaunchActivatedEventArgs args)
{
if (args.PreviousExecutionState == ApplicationExecutionState.Terminated ||
args.PreviousExecutionState == ApplicationExecutionState.ClosedByUser)
{
// TODO: Populate the UI with the previously saved application data
}
else
{
// TODO: Populate the UI with defaults
}
if (Window.Current.Content == null)
{
Window.Current.Content = new MainPage();
}
Window.Current.Activate();
}
PreviousExcutionState代表应用打开之前的状态,ApplicationExcutionState有三种状态,如果是Terminated,代表程序是被系统后台关闭的,那么可能有我们之前保存的数据。ClosedByUser和NotRunning代表应用是被用户关闭或者为启动的状态,要进行一次完整的启动应用。如果用户让应用进入到后台,那么操作系统会给一点时间来相应用户的重新开启应用,如果用户没有立即启动后台的应用那么系统会将应用置成Suspend挂起状态。大部分应用进入后台状态时都会停止运行。
系统会保持尽量多的后台应用挂起,用户一旦启动后台应用,可以得到一个更快的启动速度。然而如果后台挂起的应用过多,那么系统会自动关闭一些应用,而且应用不会收到任何的通知,所以如果后台应用有需要保存的数据,就需要在Suspended状态的时候保存。通过订阅Application.Current.Suspending事件来保存重要数据。在应用进入Suspending状态后的1到10秒钟没有在重新打开应用,系统会认为应用已经停止响应并将其挂起进入Suspened状态。
如果你在在应用挂起时使用异步的方法来保存数据,那么你可以通过GetDeferral方法来推迟挂起事件,直到你的任务完成后再调用SuspendingDeferral的Complete方法来告知系统你的异步任务已经完成,可以进入Suspended状态了。如果一个被挂起的应用被重新唤起,将先触发Resuming事件再触发Activated事件。
3、程序内导航
在WP8.1中用户可以通过back键来进入Suspended状态而不是直接退出应用。这个功能和以往的WP应用不同,通过注册BackPressed事件。当用户点击back键的时候将触发,通过设置BackPressedEventArgs.Handled为true告知系统将应用放到后台设为Suspended状态。如果你的应用在第一页并不能再向后导航,那么你不应该处理这个事件,系统将直接挂起你的应用。在默认的项目模板中默认处理了这个逻辑。
private void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
{
Frame frame = Window.Current.Content as Frame;
if (frame == null)
{
return;
}
if (frame.CanGoBack)
{
frame.GoBack();
e.Handled = true;
}
}
4、SD卡读写的支持
在WP8中开发者只能读SD卡上的内容,在WP8.1中如果应用注册了文件类型处理那么就可以对SD卡进行写的操作。具体可以点击这里查看。
5、数据漫游
在WP8.1中提供数据漫游的功能,漫游的数据大小限制在100KB。只有在设备处于锁屏状态和系统不繁忙的情况下才会漫游数据。漫游的数据可以在不同版本的应用之间使用,适合在Windows Store和Windows Phone Store之间分享数据。具体的如何实现可以点击这里。
6、后台传输
在WP8.1中你可以通过Windows.Networking.BackgroundTransfer实现后台上传或者下载传输,这个过程完全是由系统完成的,即使你的应用在没有打开的情况下。
7、在通知中心管理toast
在WP8.1中引入了新版的通知中心,开发者可以管理通知中心中的toast。通过Windows.UI.NotificationsAPI开发者可以对通知中心中的通知进行添加、删除、替换和过期等设置。详细的设置可以点击这里查看。
- 总结
随着昨晚WP8.1开发者预览版的推送,正式版估计也不远了。看了What's new in WP8.1 SDK我倒是觉得对用户来讲新的功能其实不多,但对开发者来说更新的内容很多。将升级到8.1确实要费一番功夫,不过也方便了以后的Windows8的开发。上面只列出了我觉得有意思的一些features,上面也给出了链接可以看全部的更新。
Windows Phone 8.1SDK新特性预览的更多相关文章
- C# 9.0 新特性预览 - 类型推导的 new
C# 9.0 新特性预览 - 类型推导的 new 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章将向大 ...
- C# 9.0 新特性预览 - 空参数校验
C# 9.0 新特性预览 - 空参数校验 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章将向大家展示它 ...
- C# 9.0 新特性预览 - 顶级语句
C# 9.0 新特性预览 - 顶级语句 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章将向大家展示它们 ...
- C# 9.0 新特性预览 - init-only 属性
C# 9.0 新特性预览 - init-only 属性 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章 ...
- avalon1.3的新特性预览
avalon1.2的性能优化风暴很快就告一段落,入职也快一个月了,许多乱七八糟的事也少了下来,估计未来一个月会有许多好东呈现给大家. 首先是一个性能检测工具.由于MVVM是将原本由人脑干的事,转到各种 ...
- Office 2016 正式发布——新特性预览
今天微软又发生了一件大事!Windows Office 2016正式发布,这标志着Windows Office 又达到了一个新的里程碑! 全新的Office 发布为Office 365 用户带来了新的 ...
- CSS3_新特性预览
一.强大的CSS选择器 以前我们通常用class. ID 或 tagname 来选择HTML元素,CSS3的选择器强大的难以置信. 它们可以减少在标签中的class和ID的数量更方便的维护样式表.更 ...
- Vue.js 3.0 新特性预览
总结起来,Vue 3 以下方面值得我们期待 : 更快 更小 更易于维护 更多的原生支持 更易于开发使用 完整的PPT:docs.google.com/presentatio… Evan 和 Vue 团 ...
- Windows Phone 8.1新特性 - 应用商店启动协议
Windows Phone 8.1 Preview SDK 发布也有几个月了,之前断断续续也写过几篇 Windows Phone 8.1 新特性的文章,今天给大家介绍一下应用商店启动协议相关的知识. ...
随机推荐
- 出现win8.1蓝屏重启故障该如何解决?
出现win8.1蓝屏重启故障该如何解决?电脑出现win8.1蓝屏重启故障,系统提示“你的电脑遇到问题,需要重新启动,我们只收集某些错误信息,然后为你重新启动.”怎么解决?本教程为你提供了win8.1蓝 ...
- 第2章 linux文件系统
1.用户和用户组管理 1.1 用户管理常用命令 1.用户账号添加命令useradd或adduser 命令格式:useradd [option] [username] 其中[option]为userad ...
- c++需要注意的地方和小算法
C++11的标准 auto //可以自动类型, auto cars=//自动转化为int 强制转换 (long)thorn =long (thorn) //前者是c标准,后者是c++ 还有一种 sta ...
- yii中第三方库
yii中存在一些路径别名:ext:表示包含了所有第三方扩展的目录 参考:http://www.yiiframework.com/doc/guide/1.1/zh_cn/basics.namespac ...
- ASP.NET MVC4 学习系统三(控制器Controller)
控制器(Controllers) 在MVC架构模式的上下文里,控制器响应用户的输入(比如,用户点击“保存”按钮),并协调模型.视图以及(经常)数据访问层.在ASP.NET MVC程序里,控制器就 ...
- psutil
tar -zxvf psutil-2.1.3.tar.gz cd psutil-2.1.3 python setup.py install 安装是出现报错 error: command 'gcc' f ...
- hdu2078
刚开始看这题,感觉是DP什么的 ,后来我发现,只要找到中最小值,就可以啦,哈哈.假如用x1把0-100分割. 则0-x1-100 ===> x1^2+(100-x1)^2 跟0-100 ...
- javaSE第十七天
第十七天 168 1:登录注册案例(理解) 169 A:用户注册案例的分析 169 B:用户注册案例的源码 170 1: cn.itcast.pojo.User.java ...
- s3c6410_时钟初始化
参考: 1)<USER'S MANUAL-S3C6410X>第三章 SYSTEM CONTROLLER 2)u-boot/board/samsumg/smdk6410/lowlevel_i ...
- 由window.history.back()引发的问题
由window.history.back()引发的问题 编写人:CC阿爸 2015-1-30 今天在这里,我想与大家一起分享由windows.history.back()引发的问题,笔者在实际开发当中 ...