Mango中新增的多任务机制,改变了之前Windows Phone只能单任务运行的尴尬,但是许多人拿到Mango的预览版,长按返回,并没有看到之前像微软宣称片中的样子,然后就称Windows Phone的多任务是伪多任务,其实事实不是如此的。
为了电量和资源分配考虑,Windows Phone的后台任务分为4个等级:
【live agent】: 这一级别的任务可以得到与前台任务相同的资源,包括网络连接和电池使用,但是微软限制了这一级别的任务最大运行数量(5个),超过这个数量的任务之后,按照时间顺序,最早后台的任务将依次进入冻结状态。
【冻结】: 这个级别的后台任务与iOS的多任务类似,后台冻结住任务的网络连接和内存资源的使用,当内存吃紧的时候,按照打开的顺序,最早打开的程序会进入墓碑状态。
【墓碑状态】: 这一状态是目前所有Windows Phone软件后台使用的机制,也就是后台时,把程序运行的状态作为一个文件保存在内存中,等到恢复任务是,再直接从这个文件中恢复任务,以保证使用的延续,缺点是需要有一个加载的过程。
【关闭】: 当内存完全不够是,按照顺序,关闭最早打开的任务。
这4个状态就是Windows Phone后台的4种状态,但是很多人不理解为什么我已经到Mango了,我的程序还是只能墓碑呢?那是因为live agent必须程序支持,也就是说你有了支持后台的系统,但是却没有支持后台的程序。由于Mango还没有正式推送,所以现在所有的程序只是nodo适用的,并没有加入对于Mango多任务的支持。不过从本月起,marketplace开始接受Mango的程序。