【问题标题】:Navigate back to an existing activity with MvxViewModel.ShowViewModel<> and FLAG_ACTIVITY_CLEAR_TOP flag使用 MvxViewModel.ShowViewModel<> 和 FLAG_ACTIVITY_CLEAR_TOP 标志导航回现有活动
【发布时间】:2013-10-23 20:47:51
【问题描述】:

我正在使用 Xamarin 和 MvvmCross 创建一个 Android 应用程序。 我正在尝试从我的子 ViewModel(视图、活动等)导航回我的父 ViewModel。假设我有 backstack A->B->C 并且我正在尝试从 C 导航到 A 并且 C 和 B 被破坏并且 A 被重新激活。

在这里我可以使用 FLAG_ACTIVITY_CLEAR_TOP 并使用 Intent 类进行导航:

var startActivityIntent = new Intent(this, typeof(MainView));
startActivityIntent.SetFlags(ActivityFlags.ClearTop);
StartActivity(startActivityIntent);

它工作正常(除了我的父活动 A 被销毁并创建新的而不是重新启动的事实。

但我需要将导航逻辑放在我的 ViewModel(核心库,跨所有平台共享)中。

从 PCL 导航回现有活动的正确方法是什么(使用 MvxViewModel.ShowViewMode() 方法)

谢谢!

【问题讨论】:

    标签: android android-intent xamarin.android xamarin mvvmcross


    【解决方案1】:

    ViewModel 中,您可以简单地使用Close(this)

    【讨论】:

    • 在这种情况下,活动 A 被重新创建,我的后台堆栈是:A->A
    • 这真的取决于你的演示者做什么。
    • 我不使用自定义演示者。一切都来自默认 + monodroid + xamarin + mvvmcross 应用程序。
    【解决方案2】:

    在活动类A上有[Activity(LaunchMode = LaunchMode.SingleTask)]属性

    【讨论】:

      猜你喜欢
      • 2016-06-30
      • 2016-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-07
      相关资源
      最近更新 更多