MvxBundle带有错误的值

时间:2014-06-26 13:03:56

标签: navigation xamarin xamarin.android mvvmcross

我的应用使用MvvmCross,我有一个奇怪的问题。有时当我点击通知后导航时,在InitFromBundle方法中到达IMvxBundle的值是错误的。

以下是推送通知服务中的意图创建:

MvxViewModelRequest request = new MvxViewModelRequest ();
request.ViewModelType = typeof(RecomendationPageViewModel);
request.ParameterValues = new Dictionary<string,string> ();
request.ParameterValues.Add ("ID", intent.Extras.Get ("ID").ToString ());
newIntent = Mvx.Resolve<IMvxAndroidViewModelRequestTranslator> ().GetIntentFor (request);

以下是RecomendationPageViewModel中的InitFromBundle方法:

 protected override void InitFromBundle (IMvxBundle parameters)
    {
        base.InitFromBundle (parameters);
        if (parameters.Data.ContainsKey ("ID"))
        {
           long id = long.Parse (parameters.Data ["ID"]);
           Recomendation rec = CommunicationManager.Recomendations.GetRecomendation(AppConfiguration.Instance.User.ID, id);
           SharedContext.CurrentViewedRecomendation = rec;
           Recomendation = new RecomendationViewModel (rec, null);        
        }
}

有时它可以,但有时我会得到一个旧捆绑的价值。例如,当我使用应用程序时,我导航到ID为X的ViewModel,然后得到通知我将获得相同的ID X而不是新的ID,即使我已经在通知到达之前导航离开该ViewModel

更新

我缩小了范围。如果我收到带有ID X的推送通知,按下它然后收到ID为Y的新通知我仍然会到达ID为X的ViewModel ...我需要在收到通知后清除某些内容点击?

完成后我是否需要重置捆绑包?我做错了什么?

由于

阿米特

0 个答案:

没有答案