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 ...
随机推荐
- RESTful 架构基础
源自:https://mp.weixin.qq.com/s/wEr2jAVphzB1G_MISlLU0w REST(Representational State Transfer)架构风格是一种世界观 ...
- <Lord don’t move that mountain>
<Lord don’t move that mountain> Lord, don't move that mountain(主,不要移走高山) Give me strength to c ...
- CSS 鼠标样式
设置鼠标指针放在一个元素边界范围内时所用的光标形状,需要对元素的css属性cursor进行设置. cursor属性可能的值: default 默认光标(通常是一个箭头) auto 默认.浏览器设置的( ...
- Eclipse Debug Daemon Thread
Daemon Thread ["http-bio-8080"-exec-2] (Suspended (exception RuntimeException)) ThreadPool ...
- 用 Visual Studio Code 调试运行在 homestead 环境中的 laravel 程序
由于之前做 .net 开发比较熟悉 visualstudio,所以自 visualstudio code 发布后就一直在不同场合使用 vscode ,比如前端.node等等.最近在做 laravel ...
- [WHY]Hello, Worktile~
本来是水水的去听一听云计算大会,感受一下氛围的, 万万没想到,竟然意外的參观了Worktile,这也成了北京之旅最值得纪念的记忆. 先是路上看到QQ有个好友请求,备注是Worktile市场的小泽. 从 ...
- UVa 1412 - Fund Management(状压DP + 预处理)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- [JSOI2016]扭动的回文串
题目 非常板子了 看到求什么最长的回文,我们就想到枚举回文中心的方法 首先对于这个回文串只包含在一个串内的情况,我们随便一搞就可以了,大概\(Manacher\)一下就没有了 对于那种扭动的回文串,我 ...
- 内部元素一一相应的集合的算法优化,从list到hashmap
说是算法优化,基本上是在吹牛,仅仅只是算是记录下,我写代码时候的思路.毕竟还是小菜鸟. 我要开一个party,与会者都是情侣,可是情侣并非一起过来的,而是有先有后,可是每位与会者来的时候都拿着一束鲜花 ...
- Oracle ora-12514监听程序当前无法识别连接描述中请求的错误
昨天刚安装好oracle数据库,还可以登录,到今天,登录时就发出了这样的错误 到网上找了半天,上面都是说监听器服务的问题,但是试过后依旧不行.最后重启了一次,就解决了异常 原来是oracle中一个服务 ...