FilePicker在库中不断崩溃(WP 8.1 RT)

本文关键字:WP RT 崩溃 FilePicker | 更新日期: 2023-09-27 18:22:21

我有一个Windows Phone 8.1 RT应用程序,在该应用程序中,我使用FilePicker API从库中选择图像。然而,当用户在图库中选择图像时,该应用程序会不断崩溃。

应用程序在两种不同的情况下崩溃:

  1. 用户打开filepicker浏览图库中的图像,在浏览时,应用程序终止,图库关闭(显示WP 8.1的主屏幕)。

  2. 用户选择一些文件并按下完成按钮,此时应用程序开始恢复,但在恢复时失败并崩溃(显示主屏幕)。

文件选择器在其他方面工作良好,但以上两个崩溃一直在间歇性发生。这些崩溃有什么解决办法吗?

FilePicker在库中不断崩溃(WP 8.1 RT)

由于OnSuspending()方法花费太多时间来完成执行,应用程序崩溃。因此,操作系统不断终止该应用程序。

应用程序崩溃的场景如下:

  1. 调用FilePicker API,并将用户导航到库视图。同时,OnSuspending()方法仍在执行,由于方法中的lock需要等待,该方法从未返回,迫使操作系统在用户仍处于图库视图时强制终止应用程序。操作系统的强制终止基本上也终止了FilePicker API,画廊视图也被关闭,将用户带回主屏幕。

  2. 这种情况与上面类似。不过,操作系统不会在图库仍然打开时终止应用程序。一旦用户从库中选择了一个项目,操作系统就会开始恢复应用程序,并尝试调用OnResuming方法。但它意识到应用程序尚未终止,OnSuspending方法仍在执行(等待获取lock对象)。当操作系统试图恢复尚未挂起的应用程序时,会出现这种状态不匹配,导致操作系统终止应用程序。

我基本上确保OnSuspending方法快速返回以修复上述崩溃。