备忘!WP8开发必须注意的那些事……[未完待续]
2013-05-14 09:50
169 查看
App应用程序状态管理的主事件有四个:Launching、Deactivated、Activated
和 Closing。
这些事件里任务时间必须在10秒内完成,否则程序被终止!所以,这些事件里面最好别做网络和独立存储操作。
App被切换到后台时处于休眠状态,无法干任何事,而且可能会被系统执行逻辑删除而终止。程序被逻辑删除后,程序状态数据和页面状态数据会暂时被保留,但由于系统最多只保留5个最近应用程序的这些状态数据,所以这些状态数据并不可靠。可根据Activated事件的参数ActivatedEventArgs.IsApplicationInstancePreserved判断程序是从休眠中修复(true)还是逻辑删除后恢复(false)。
保存应用程序级状态数据(如被多个页面共享的数据 ),使用PhoneApplicationService.Current.State;保存页面的状态数据,使用PhoneApplicationPage.State。也不能因为它们不可靠而抛弃它们改为全部使用独立存储,它们的读写速度要比独立存储快的多,可在上面4个主事件里直接操作。
独立存储操作可用IsolatedStorageSettings.ApplicationSettings或者IsolatedStorageFile.GetUserStoreForApplication(),它们都没有大小限制。但是保存在IsolatedStorageSettings.ApplicationSettings的数据会一直占用着程序内存,程序正常退出时会对其自动执行Save操作。
一个应用程序的运行内存限制为150M,可以通过VS的 “调试 -> 启动WindowsPhone应用程序分析” 分析程序的性能。
一个UIElement的最大高度是2048。
模拟器的数据保存在虚拟硬盘文件.vhd和.avhd里,路径在:C:\Users\用户名\AppData\Local\Microsoft\XDE下,可通过
计算机管理 -> 磁盘管理 -> 附加VHD 把它们映射到磁盘驱动器来进行方便的读写操作。
页面跳转时附加到Uri的参数长度有限制,测试65000字节以内是没问题的,特殊小数据可以通过Convert.ToBase64String()编码后传递。
图像、json等网络文件数据在本次程序生命周期中系统会做缓存,再次请求相同网络文件url时系统会返回缓存中数据,所以如果需要刷新获取最新数据,只能在url后面加随机参数了
程序页面跳转时,几个关键函数的执行顺序如下,假设从PageA跳转到PageB:
先执行PageB的构造函数,再执行PageA的OnNavigatedFrom函数,然后执行PageB的OnNavigatedTo函数,最后触发PageB的Loaded事件。
后台定时任务每30分钟执行一次,每次执行时间必须在25秒内,最大内存限制在6M内,生效时间最长只有14天,过期后需要重新计划,连续2次崩溃后会被禁用,整个手机的后台任务最多为6个,节电模式下不会执行。
和 Closing。
这些事件里任务时间必须在10秒内完成,否则程序被终止!所以,这些事件里面最好别做网络和独立存储操作。
App被切换到后台时处于休眠状态,无法干任何事,而且可能会被系统执行逻辑删除而终止。程序被逻辑删除后,程序状态数据和页面状态数据会暂时被保留,但由于系统最多只保留5个最近应用程序的这些状态数据,所以这些状态数据并不可靠。可根据Activated事件的参数ActivatedEventArgs.IsApplicationInstancePreserved判断程序是从休眠中修复(true)还是逻辑删除后恢复(false)。
保存应用程序级状态数据(如被多个页面共享的数据 ),使用PhoneApplicationService.Current.State;保存页面的状态数据,使用PhoneApplicationPage.State。也不能因为它们不可靠而抛弃它们改为全部使用独立存储,它们的读写速度要比独立存储快的多,可在上面4个主事件里直接操作。
独立存储操作可用IsolatedStorageSettings.ApplicationSettings或者IsolatedStorageFile.GetUserStoreForApplication(),它们都没有大小限制。但是保存在IsolatedStorageSettings.ApplicationSettings的数据会一直占用着程序内存,程序正常退出时会对其自动执行Save操作。
一个应用程序的运行内存限制为150M,可以通过VS的 “调试 -> 启动WindowsPhone应用程序分析” 分析程序的性能。
一个UIElement的最大高度是2048。
模拟器的数据保存在虚拟硬盘文件.vhd和.avhd里,路径在:C:\Users\用户名\AppData\Local\Microsoft\XDE下,可通过
计算机管理 -> 磁盘管理 -> 附加VHD 把它们映射到磁盘驱动器来进行方便的读写操作。
页面跳转时附加到Uri的参数长度有限制,测试65000字节以内是没问题的,特殊小数据可以通过Convert.ToBase64String()编码后传递。
图像、json等网络文件数据在本次程序生命周期中系统会做缓存,再次请求相同网络文件url时系统会返回缓存中数据,所以如果需要刷新获取最新数据,只能在url后面加随机参数了
程序页面跳转时,几个关键函数的执行顺序如下,假设从PageA跳转到PageB:
先执行PageB的构造函数,再执行PageA的OnNavigatedFrom函数,然后执行PageB的OnNavigatedTo函数,最后触发PageB的Loaded事件。
后台定时任务每30分钟执行一次,每次执行时间必须在25秒内,最大内存限制在6M内,生效时间最长只有14天,过期后需要重新计划,连续2次崩溃后会被禁用,整个手机的后台任务最多为6个,节电模式下不会执行。
相关文章推荐
- 十年心得:一个优秀Android开发人员必须注意的10个误区
- 网页开发所必须注意的问题
- 一个优秀Android开发人员必须注意的10个误区
- 在iOS开发中关于(UIDevice、NSBundle、NSLocale)注意:凡是使用这些控件必须引入“UIKit.h”框架
- 关于蓝牙开发,必须注意的广播
- 做安卓开发必须要注意的事项
- 备忘-链接执行js时注意target必须是_self或者_top
- iOS 自己开发SDK必须要注意的几点
- 十年心得:一个优秀Android开发人员必须注意的10个误区
- 使用PHP开发你必须得注意的要点
- 敏捷开发必须注意的12项原则
- 程序员的自我修养-----Java开发的必须知道的几个注意点
- android开发必须要注意的首要问题
- 刚查了,Z3795不支持EPT,即WP8开发必须的SLAT,看来只能作为简单的WINDOWS备机了
- 程序员的自我修养-----Java开发的必须知道的几个注意点
- 在2015年 开发一个 Web App 必须了解的那些事
- ARCGIS 9.3 DESKTOP SERVER Engine 开发环境搭建完美实录 备忘录(好复杂必须备忘)
- iOS 10 开发 注意事项 Privacy隐私 权限申请 必须设置"Privacy - XXX"提示内容
- 程序员软件开发工作中必须注意的问题
- WP8最大的败笔就是只能用Win8做开发