0

我遇到了一个有趣的场景。它也由 msdn 论坛上的某个人呈现在这里

当我启动我的应用程序时,如果我锁定了屏幕,或者如果当时有一个呼叫来电,并且在各自的场景中解锁或断开呼叫后恢复,则应用程序崩溃并抛出 0x8000ffff 错误。emailcomposetask当从我的应用程序打开an 时,我观察到这种情况也会发生。

以前我以为是因为我没有处理 Obscured 和 Unobscured。但现在我正在处理它们,我仍然收到同样的情况。我观察到许多其他应用程序也会崩溃,但有一些应用程序(如 Facebook 和 Twitter)能够处理它。有没有人遇到过同样的情况?你能帮我解决这个问题吗?

我做错什么了吗?

另请注意,我更改了默认加载页面。它不是 mainPage.xaml 而是 xyz.xaml,我在其中检查令牌并将用户自动重定向到 mainPage,而无需单击任何按钮。

编辑:添加 StackTrace

at Microsoft.Phone.Execution.NativeEmInterop.NotifyFullObscurityChanged(Boolean isObscured)
at Microsoft.Phone.Shell.PhoneApplicationService.OnFullObscurityChanged(Object sender, LockStateChangeEventArgs e)
at Microsoft.Phone.Shell.Interop.ShellPageManager.ShellPageCallback_OnLockStateChange(Object source, LockStateChangeEventArgs e)
at Microsoft.Phone.Shell.Interop.ShellPageCallback.FireOnLockStateChange(Boolean fLocked)`
4

1 回答 1

0

这主要是因为代码OnNavigatedTo()Page_Loaded()事件处理程序。放置断点并检查这两种方法中的问题。

在您提到的情况下恢复应用程序时,这两个方法会以相同的顺序调用。

希望这能解决您的问题。

根据您的评论更新:

你在这。您正在清除整个导航历史记录,因此它现在不知道去哪里(即使当前页面已被删除)。

我的建议是,将您的回溯历史删除代码从 OnNavigated 移至 Page_Loaded 事件。

于 2012-09-17T18:08:52.317 回答