OnNavigatedTo在应用程序恢复时被调用两次

时间:2013-06-03 14:46:42

标签: windows-phone-8 windows-phone mvvm-light

我的WP8应用程序出现问题。它使用MVVM光库创建ViewModel,也用于带消息的页面导航。

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

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

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

我没有使用FastAppResume,只是希望恢复正常行为。任何建议都会非常感激!我已经检查了所有可能已经加载了两次页面的调用,但这没有用。除了这个问题,我的应用程序表现得应该如此。我正在寻找一种创建异步任务的解决方案,该任务一次只能执行一次。

1 个答案:

答案 0 :(得分:0)

之前我曾经发生这种情况,这是因为Message已被多次注册。

如果没有看到你的代码,解决这个问题的最佳方法就是将Messenger.Default.Register添加到你的ViewModel构造函数中,这样它只被调用一次