2015-10-20 103 views
0

每當我旋轉設備時我都會崩潰。我使用MvvmCross 4.0.0.beta-3,這裏是我怎麼有我的應用程序設置:MvvmCross - 設備旋轉時發生崩潰

Setup.cs

protected override IMvxAndroidViewPresenter CreateViewPresenter() 
    { 
     var customPresenter = new MvxFragmentsPresenter(); 
     Mvx.RegisterSingleton<IMvxFragmentsPresenter>(customPresenter); 
     return customPresenter; 
    } 

ShellPage.cs

public abstract class ActivityBase<TViewModel> : MvxCachingFragmentCompatActivity<TViewModel> 
                where TViewModel : MvxViewModel 
    { 
     . 
     . 
     . 
    } 

HomePage.cs

[Activity(
    Label = "Home", 
    MainLauncher = true, 
    LaunchMode = LaunchMode.SingleTop)] 
    public class ShellPage : ActivityBase<ShellPageViewModel>, IMvxFragmentHost 
    { 
     . 
     . 
     . 
     public void RegisterFragment<TFragment, TViewModel>(string tag, Bundle args) 
      where TFragment : IMvxFragmentView 
      where TViewModel : IMvxViewModel 
     { 
      var customPresenter = Mvx.Resolve<IMvxFragmentsPresenter>(); 
      customPresenter.RegisterViewModelAtHost<TViewModel>(this); 
      RegisterFragment<TFragment, TViewModel>(tag); 
     } 

     public bool Show(MvxViewModelRequest request, Bundle bundle) 
     { 
      if (request.ViewModelType == typeof(MenuContentViewModel)) 
      { 
       ShowFragment(request.ViewModelType.Name, Resource.Id.navigation_frame, bundle); 
       return true; 
      } 
      else 
      { 
       ShowFragment(request.ViewModelType.Name, Resource.Id.content_frame, bundle, true); 
       return true; 
      } 
     } 
     . 
     . 
     . 
    } 

MainFragment.cs

[MvxOwnedViewModelFragment] 
    [Register("xxxxx.android.fragments.MainFragment")] 
    public class MainFragment : MvxFragment<MainFragmentViewModel> 
    { 
     . 
     . 
     . 
    } 

我已經發布了上面的代碼,表明我使用MvxCachingFragmentCompatActivity作爲基本活動,IMvxFragmentHost,因爲我的ShellPage是使用NavigationDrawer交換片段的唯一頁面,以及[MvxOwnedViewModelFragment]屬性在我的片段上。

當我旋轉我得到以下錯誤:

10-20 12:10:02.470 I/MonoDroid(6108): UNHANDLED EXCEPTION: 
    10-20 12:10:02.471 I/MonoDroid(6108): System.NullReferenceException: Object reference not set to an instance of an object 
    10-20 12:10:02.471 I/MonoDroid(6108): at Cirrious.MvvmCross.Droid.Support.AppCompat.MvxCachingFragmentCompatActivity.RestoreLookupFromSleep() 
    10-20 12:10:02.471 I/MonoDroid(6108): at Cirrious.MvvmCross.Droid.Support.AppCompat.MvxCachingFragmentCompatActivity.OnPostCreate (Android.OS.Bundle) 

任何想法?

謝謝!

回答