Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用mvvmcross显示viewmodel时无法解析当前顶级活动_C#_Android_Android Fragments_Mvvmcross_Presenter - Fatal编程技术网

C# 使用mvvmcross显示viewmodel时无法解析当前顶级活动

C# 使用mvvmcross显示viewmodel时无法解析当前顶级活动,c#,android,android-fragments,mvvmcross,presenter,C#,Android,Android Fragments,Mvvmcross,Presenter,我正在Mvvmcross应用程序中实现一个自定义演示者。我想要完成的是:常规导航和片段导航 在我的主要活动中,我根据以下示例嵌入了几个片段视图: 在片段工作的同时,我还想显示不作为片段托管的常规活动。因此,我扩展了此演示者,如以下代码片段所示: 问题/错误: 当我展示第二个活动时,它就会被展示出来。但是,当我返回到上一个视图(即主机)并再次打开同一活动时,它不会显示出来。输出日志显示:“mvx:警告:无法解析当前顶级活动” 我做错了什么,或者我应该做什么来告知框架当前最热门的活动是什么 提前谢谢

我正在Mvvmcross应用程序中实现一个自定义演示者。我想要完成的是:常规导航和片段导航

在我的主要活动中,我根据以下示例嵌入了几个片段视图:

在片段工作的同时,我还想显示不作为片段托管的常规活动。因此,我扩展了此演示者,如以下代码片段所示:

问题/错误: 当我展示第二个活动时,它就会被展示出来。但是,当我返回到上一个视图(即主机)并再次打开同一活动时,它不会显示出来。输出日志显示:“mvx:警告:无法解析当前顶级活动”

我做错了什么,或者我应该做什么来告知框架当前最热门的活动是什么

提前谢谢

出什么事了

您提供的跟踪行显示在以下位置:

    protected virtual void Show(Intent intent)
    {
        var activity = Activity;
        if (activity == null)
        {
            MvxTrace.Warning("Cannot Resolve current top activity");
            return;
        }
        activity.StartActivity(intent);
    }

因此,当调用Show时,似乎没有显示当前的MvvmCross活动

。。。看看它,似乎这是真的-应用程序中的主要活动是而不是适合MvvmCross,而是一个正常的片段活动

应用程序应该如何告知框架当前最热门的活动是什么

MvvmCross通常通过截获活动生命周期事件(特别是创建、启动、重新启动、恢复和销毁的活动)来跟踪“顶级活动”。这些在中的生命周期图中显示

MvvmCross:

  • 通过中的MvxActivityAdapter钩住这些事件
  • 这些钩子调用中的扩展方法
  • 这些扩展方法向lifecycle monitor通知生命周期更改-请参阅-
所有内置的MvvmCross活动类型——MvxActivity、MvxFragmentActivity等——都称之为“自动”。可以使用中所述的步骤将这些自适应扩展到其他活动类型,或者如果愿意,您的应用程序可以手动调用其中一些挂钩


个人意见:我认为你最好不要跟得太近。每次创建MainActivity时,
OnCreate
in中的代码似乎都试图
启动该应用程序,当然,在每个应用程序的生命周期中,这可能会发生多次


相反,请阅读该示例和其他类似示例,然后-实施一些适合您导航需要的内容。

谢谢Stuart!我的主要活动确实是一种经常性的零碎活动。每次我轮换这个活动时,应用程序都会启动,这是不可取的。我会看看你建议的链接,谢谢。