WP8上Application_Launching方法的时序/线程到底是什么?具体地说,与UI加载/呈现序列有关?
我有一个应用程序,其中一些全局初始化是在Application_Launching中完成的。我从一个在开始页面的XAML数据绑定过程中调用的方法获得了崩溃报告;该崩溃与所说的全局初始化未发生一致。
malloc:我正在调用一个本机(C++)方法,该方法将一个文件读入一个初始化为空的全局变量中的一个由编辑创建的内存块。上述变量作为崩溃报告的一部分被转储;我得到了一个报告,其中它为空。
粘贴代码将是相当无意义的IMHO。
发布于 2014-02-11 05:29:20
启动应用程序时,会引发Launching事件。但是,该应用程序稍后可以处于休眠状态,这一过程称为“墓碑”。当一个逻辑删除的应用被恢复时,它不会引发Launching事件,而是引发Activated事件。很可能是你忘了处理那个案子。
要轻松测试它,请进入您的Windows Phone项目的属性,在Debug选项卡中,选中"Tombstone of deactivation while Debug“选项。从那里,每次在附加调试器的同时停用应用程序(通常是在模拟器上按下home按钮时),应用程序将被逻辑删除,您可以确保切换回它时应用程序正确恢复。
发布于 2014-03-26 03:21:10
我有另一个理论。这不是关于库在错误的时间被加载,而是关于库被卸载。由于我的几乎所有本机函数都是静态的,并且状态是全局的,因此没有活动的本机对象,并且COM子系统在模块上的引用计数为零。根据COM规则,像这样的模块是随时可以卸载的。在随后的本机函数调用中,库被重新加载,但全局状态已消失。
从下一个版本开始,我将在应用程序的生命周期中保留一个活动的本机对象。我们看看撞车会不会再来。
https://stackoverflow.com/questions/21687276
复制相似问题