C# 使用mvvmcross显示viewmodel时无法解析当前顶级活动
我正在Mvvmcross应用程序中实现一个自定义演示者。我想要完成的是:常规导航和片段导航 在我的主要活动中,我根据以下示例嵌入了几个片段视图: 在片段工作的同时,我还想显示不作为片段托管的常规活动。因此,我扩展了此演示者,如以下代码片段所示: 问题/错误: 当我展示第二个活动时,它就会被展示出来。但是,当我返回到上一个视图(即主机)并再次打开同一活动时,它不会显示出来。输出日志显示:“mvx:警告:无法解析当前顶级活动” 我做错了什么,或者我应该做什么来告知框架当前最热门的活动是什么 提前谢谢 出什么事了 您提供的跟踪行显示在以下位置:C# 使用mvvmcross显示viewmodel时无法解析当前顶级活动,c#,android,android-fragments,mvvmcross,presenter,C#,Android,Android Fragments,Mvvmcross,Presenter,我正在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通知生命周期更改-请参阅-
个人意见:我认为你最好不要跟得太近。每次创建MainActivity时,
OnCreate
in中的代码似乎都试图启动该应用程序,当然,在每个应用程序的生命周期中,这可能会发生多次
相反,请阅读该示例和其他类似示例,然后-实施一些适合您导航需要的内容。谢谢Stuart!我的主要活动确实是一种经常性的零碎活动。每次我轮换这个活动时,应用程序都会启动,这是不可取的。我会看看你建议的链接,谢谢。