一直以为都在纳闷,为啥我的其他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在刷新数据后卡死的解决方案的更多相关文章

  1. POI刷新数据后的函数(公式)更新问题

    使用POI将Excel模板中的数据进行更新,这应该是很常见的操作 下面就贴上我的一小段代码 public class ModifyExcel { /** * @param fileName Excel ...

  2. pymysql 读取大数据内存卡死的解决方案

    背景:目前表中只有5G(后期持续增长),但是其中一个字段(以下称为detail字段)存了2M(不一定2M,部分为0,平均下来就是2M),字段中存的是一个数组,数组中存N个json数据.这个字段如下: ...

  3. Adapter刷新数据的坑

    adapter刷新数据的时候,要能够刷新成功,要保证每次刷新的时候都是改变数据源. 于是,我这样做了,在适配器的构造方法里面写到: private List<ListBean> listI ...

  4. DataGridView重新加载数据后,选中上次选中的行。

    public int SelecedRow;//记录当前鼠标点中的行索引(用于解决用户获取看板数据,刷新数据后,当前选中行回到默认行) private void dataGridView1_CellC ...

  5. UWP开发:APP之间的数据交互(以微信为例)

    目录 说明 UWP应用唤醒方式 跟微信APP交互数据 APP之间交互数据的前提 说明 我们经常看到,在手机上不需要退到桌面,APP之间就可以相互切换,并且可以传递数据.比如我在使用知乎APP的时候,需 ...

  6. js实现非模态窗口增加数据后刷新父窗口数据

    父窗口是由两个部分组成,一个html的table,一部分是extjs的gird. 点击grid面板[增加]按钮将会弹出非模态窗口进行新数据的编辑页面 下面是按钮的触发函数代码: var a = win ...

  7. Ajax请求数据与删除数据后刷新页面

    1.ajax异步请求数据后填入模态框 请求数据的按钮(HTML) <a class="queryA" href="javascript:void(0)" ...

  8. IDEA 修改JSP和后端数据后,页面刷新可以实时更新

    情况:刚开始使用IDEA进行开发时,发现修改JSP页面或者后端数据后,再刷新浏览器页面,发现没有变化,页面无更新. 这样就导致不得不频繁重启tomcat服务器.非常麻烦 解决方法: 步骤1. 先设置t ...

  9. 解决Vuex持久化插件-在F5刷新页面后数据不见的问题

    页面刷新后,想保存页面未保存的数据.我们总是习惯于放在浏览器的sessionStorage和localStorage中.但是用了vue后,vuex便可以被应用了. vuex优势:相比sessionSt ...

随机推荐

  1. 高级IO

    # 高级IO 特殊的IO操作,包括文件锁.系统V的流.信号驱动的I/O.多路转I/O(select和pull函数).readv和writev函数以及存贮映射I/O等概念和函数. ## 文件锁 文件锁是 ...

  2. 【转】.NET Core基于. csproj 配置文件发布项目

    一.前言 .NET工具链在最新的Preview3版本中,引入了新的MSBuild项目系统,项目文件又回归了.csproj的XML文件来管理,项目文件.包引用.程序集引用..NET Core工具集.发布 ...

  3. Java设计模式16:常用设计模式之观察者模式(行为型模式)

    1. Java之观察者模式(Observer Pattern) (1)概述: 生活中我们在使用新闻app,当我们对某一栏比较感兴趣,我们往往会订阅这栏新闻,比如我对军事栏感兴趣,我就会订阅军事栏的新闻 ...

  4. 1103. [POI2007]MEG-Megalopolis【树链剖分】

    Description 在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员Blue Mary也开始骑着摩托车传递邮件了. 不过,她经常回忆起以前在乡间漫步的情景.昔日,乡下有依次编号为1.. ...

  5. 随手练——HDU 5015 矩阵快速幂

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5015 看到这个限时,我就知道这题不简单~~矩阵快速幂,找递推关系 我们假设第一列为: 23 a1 a2 ...

  6. 20145203盖泽双java实验三 敏捷开发与XP实践

    java实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> ...

  7. mongodb的学习-4-使用 MongoDB shell 来连接 Mongodb 服务

    执行启动操作后,mongodb 在输出一些必要信息后不会输出任何信息,之后就等待连接的建立,当连接被建立后,就会开始打印日志信息. 使用 MongoDB shell 来连接 Mongodb 服务 标准 ...

  8. c++ 浅拷贝和深拷贝 指针和引用的区别 malloc(free)和new(delete)的区别 重载重写重定义

    4.malloc(free)和new(delete)的区别 malloc()函数: 1.1 malloc的全称是memory allocation,中文叫动态内存分配. 原型:extern void ...

  9. SVN 客户端使用

    一.TortoiseSVN基本设置 1.1 客户端设置     1.1  语言设置       二.基本操作 2.1 浏览服务器           用户名跟密码,跟公司配置管理员人员获取,没有专门的 ...

  10. 五种典型开发周期模型(瀑布、V、原型化、螺旋、迭代)

    五种典型开发周期模型(瀑布.V.原型化.螺旋.迭代) 总结一下经常可以见到的系统开发周期模型.    在过去的几年里,可以很奇葩的碰到类似于“创业项目库”这种需求非常明确,工作量十分可控,对质量要求比 ...