1

我的 WP8 应用程序有问题。它使用 MVVM 灯光库来创建 ViewModel,也用于带有 Messages 的页面导航。

现在,我的 MainPage 的 OnNavigatedTo 方法遇到了一些问题。如果我第一次启动应用程序,它会被调用一次。如果我用后退按钮关闭并重新打开它,它也只会被调用一次。我的 MainPage ViewModel 的构造函数也只会被调用一次。

如果我让应用程序在后台打开并使用“开始”或“搜索”按钮退出,则 OnNavigatedTo 将被调用两次!构造函数将不再被调用。

我现在的问题是,我正在 OnNavigatedTo 中初始化与服务器的同步。这应该只执行一次,但现在有时会因为 OnNavigatedTo 的双重调用而被调用两次。我对 WP8 应用模型的理解是 OnNavigatedTo 在我进入页面时只会被调用一次。我无法理解这种行为,它让我发疯。

我没有使用 FastAppResume,只想恢复正常行为。任何建议将不胜感激!我检查了所有可能两次加载页面的调用,但这没有帮助。除了这个问题,我的应用程序的行为也应该如此。否则,我正在寻找一种解决方案来创建一个异步任务,该任务一次只能执行一个。

4

1 回答 1

0

我以前也遇到过这种情况,这是因为消息被多次注册。

在没有看到您的代码的情况下,解决此问题的最佳方法是将 Messenger.Default.Register 添加到您的 ViewModel 构造函数中,因此它只被调用一次

于 2013-06-04T09:58:05.483 回答