UWP 自然灾害App在刷新数据后卡死的解决方案
一直以为都在纳闷,为啥我的其他app崩溃次数几乎为0,而单单这个App的崩溃次数简直逆天了,我都不敢相信。

每天都有至少上千次crash。。。我也是服的

不甘心,趁着这次重构的机会,把代码好好捋了1下
Debug.WriteLine("BeginRequest " + DateTime.Now);
progressRing.Visibility = Visibility.Visible;
progressRing.IsActive = true;
var repsonse = await HttpHelper.GetJsonAsync<USGSEarthquakesModel>(strRequestUrl);
if (repsonse != null && repsonse.metadata.status == )
{
Debug.WriteLine("EndRequest " + DateTime.Now);
Debug.WriteLine("BeginxBind " + DateTime.Now);
Debug.WriteLine("Count " + repsonse.metadata.count);
ObsList.Clear();
if (repsonse.metadata.count > )
{
foreach (FeaturesItem em in repsonse.features)
{
if (em.properties.mag == null)
continue;
try
{
StandardEarthquakesModel sm = new StandardEarthquakesModel
{
Time = Helpers.TimeConverter.Convert2MyTime(em.properties.time),
Mag = (double)em.properties.mag,
Latitude = (double)em.geometry.coordinates[],
Longitude = (double)em.geometry.coordinates[],
Depth = (double)em.geometry.coordinates[],
Location = em.properties.place,
};
ObsList.Add(sm);
}
catch { }
}
PullToRefreshListViewControl.ItemsSource = ObsList;
(Application.Current as App).gObsEarthquakeList = ObsList;
TipServices.TipUpdateData((int)repsonse.metadata.count);
Debug.WriteLine("EndxBind " + DateTime.Now);
}
else
{
TipServices.TipNoData();
}
}
else
{
TipServices.TipNetError();
}
progressRing.Visibility = Visibility.Collapsed;
progressRing.IsActive = false;
看获取json,看绑定,看数据模型,貌似都没啥问题啊。
于是就把代码分块注释掉,看看哪一部分有bug。
首先注释掉response之后代码,可以确定获取response没猫饼。
难道try catch有问题?
排除。。。
接着就是
PullToRefreshListViewControl.ItemsSource = ObsList;
有问题???
其他app也是这么写的啊。。。
注释一番后,最终确定
TipServices.TipUpdateData((int)repsonse.metadata.count);
真的有问题。
进去看看
public static void TipUpdateData(int nCount)
{
if (notifyPopup != null)
notifyPopup.Hide();
if (strCurrentLanguage.ToLower().Equals("zh-cn"))
notifyPopup = new NotifyPopup(LanguageHelper.strTipDataUpdatedAmount_zh_cn + nCount);
else
notifyPopup = new NotifyPopup(nCount + LanguageHelper.strTipDataUpdatedAmount_en);
notifyPopup.Show(); SoundHelper.PlaySucceedTipSound();
}
这个类似安卓toast,其他app用过无数次,怎么会有bug???
那基本可以确定
SoundHelper.PlaySucceedTipSound();
这句话挂了。
private static public static void PlaySucceedTipSound()
{
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.Source = MediaSource.CreateFromUri(new Uri("ms-appx:///Assets/Skype.wav"));
mediaPlayer.Play();
}
把MediaPlayer拿出来设置成静态,
UWP 自然灾害App在刷新数据后卡死的解决方案的更多相关文章
- POI刷新数据后的函数(公式)更新问题
使用POI将Excel模板中的数据进行更新,这应该是很常见的操作 下面就贴上我的一小段代码 public class ModifyExcel { /** * @param fileName Excel ...
- pymysql 读取大数据内存卡死的解决方案
背景:目前表中只有5G(后期持续增长),但是其中一个字段(以下称为detail字段)存了2M(不一定2M,部分为0,平均下来就是2M),字段中存的是一个数组,数组中存N个json数据.这个字段如下: ...
- Adapter刷新数据的坑
adapter刷新数据的时候,要能够刷新成功,要保证每次刷新的时候都是改变数据源. 于是,我这样做了,在适配器的构造方法里面写到: private List<ListBean> listI ...
- DataGridView重新加载数据后,选中上次选中的行。
public int SelecedRow;//记录当前鼠标点中的行索引(用于解决用户获取看板数据,刷新数据后,当前选中行回到默认行) private void dataGridView1_CellC ...
- UWP开发:APP之间的数据交互(以微信为例)
目录 说明 UWP应用唤醒方式 跟微信APP交互数据 APP之间交互数据的前提 说明 我们经常看到,在手机上不需要退到桌面,APP之间就可以相互切换,并且可以传递数据.比如我在使用知乎APP的时候,需 ...
- js实现非模态窗口增加数据后刷新父窗口数据
父窗口是由两个部分组成,一个html的table,一部分是extjs的gird. 点击grid面板[增加]按钮将会弹出非模态窗口进行新数据的编辑页面 下面是按钮的触发函数代码: var a = win ...
- Ajax请求数据与删除数据后刷新页面
1.ajax异步请求数据后填入模态框 请求数据的按钮(HTML) <a class="queryA" href="javascript:void(0)" ...
- IDEA 修改JSP和后端数据后,页面刷新可以实时更新
情况:刚开始使用IDEA进行开发时,发现修改JSP页面或者后端数据后,再刷新浏览器页面,发现没有变化,页面无更新. 这样就导致不得不频繁重启tomcat服务器.非常麻烦 解决方法: 步骤1. 先设置t ...
- 解决Vuex持久化插件-在F5刷新页面后数据不见的问题
页面刷新后,想保存页面未保存的数据.我们总是习惯于放在浏览器的sessionStorage和localStorage中.但是用了vue后,vuex便可以被应用了. vuex优势:相比sessionSt ...
随机推荐
- 转载:python的编码处理(一)
以下内容转载自: http://in355hz.iteye.com/blog/1860787 最近业务中需要用 Python 写一些脚本.尽管脚本的交互只是命令行 + 日志输出,但是为了让界面友好些, ...
- Python学习---Python的异步IO[all]
1.1.1. 前期环境准备和基础知识 安装: pip3 install aiohttp pip3 install grequests pip3 install wheel pip3 install s ...
- Linux为grub菜单加密码
为grub菜单加密码 加入密码后,再次进入单用户或者给下次管理grub需要输入密码 加密操作 /sbin/grub-md5-crypt # 之后输入2次密码会生成加密后字符串 编辑grub加载文件 v ...
- Linux fsck命令详解
fsck(file system check)用来检查和维护不一致的文件系统.若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查. fsck常见命令参数 -a:自动修复文件系统,不询问任何 ...
- Tomcat 配置学习
1 server.xml <host appBase="d:/aaa"> <Context path="/smswap" reloadable ...
- 最强自定义PHP集成环境,系统缺失dll和vc也能正常运行
PHPWAMP支持iis.apache.nginx等web服务器,并全部支持php多版本同时运行,无限自定义mysql.php PHPWAMP支持32和64,支持自定义自动匹配系统所需dll和vc,纯 ...
- Ardunio控制RGB的LED灯显示彩虹渐变色.
由于我使用的是共阴极的RGB LED,如果你的是共阳极的,接线的时候要注意一下. 其他没什么不同 //定义RGB色彩的输出I/O ; ; ; //标记颜色变化的方式,增加值还是减小值 bool red ...
- September 29th 2017 Week 39th Friday
Human life is ephemera, which makes it precious. 生命短暂,所以珍贵. Don't waste time on praying to the God. ...
- Take my breath away
Take my breath away 编辑 目录 1简介 2翻唱简介 3歌词 ▪ 英文歌词 ▪ 中英文歌词 1简介编辑 <Take My Breath Away>(中文译为<带走我 ...
- reactor模型框架图和流程图 libevent
学习libevent有助于提升程序设计功力,除了网络程序设计方面外,libevent的代码里有很多有用的设计技巧和基础数据结构,比如信息隐藏.函数指针.c语言的多态支持.链表和堆等等,都有助于提升自身 ...