我执行我的Mvvmcross应用定制的主持人。 我想要做到的是:常规导航和片段导航。
在我的主要活动中,我成功地嵌入基于这个例子中的几个片段的观点: https://github.com/i486dx400/MultiRegionPresenter
而片段的工作,我也想表现的经常性活动,未托管的片段。 为此我扩展了这个主持人如本片段: https://gist.github.com/JelleDamen/7003702
问题/错误:当我展示本次活动,它就会显示。 但是,当我回到以前的观点(这是主机),并重新打开相同的活动,它不会显示。 输出日志说:“MVX:警告:无法解析目前最顶级的活动”
我在做什么错了,还是我应该怎么做,告诉框架哪些活动是目前顶级的活动?
提前致谢!
这是怎么回事了?
您所提供的跟踪的线从图所示:
protected virtual void Show(Intent intent)
{
var activity = Activity;
if (activity == null)
{
MvxTrace.Warning("Cannot Resolve current top activity");
return;
}
activity.StartActivity(intent);
}
在https://github.com/MvvmCross/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Droid/Views/MvxAndroidViewPresenter.cs
所以这样看来,当显示被调用,那么没有显示出有电流MvvmCross活动。
......看着https://github.com/i486dx400/MultiRegionPresenter/blob/master/RegionEx.Droid/MainActivity.cs它似乎这是真的-在应用程序的主要活动是不适合MvvmCross,但而不只是一个正常的FragmentActivity。
应该怎样一个应用程序做通知框架哪些活动是目前顶级的活动?
MvvmCross正常轨道“顶活动”拦截活动生命周期事件 - 专门创建活动,启动,重新启动,恢复和销毁活动。 这些示于生命周期图表中http://developer.android.com/reference/android/app/Activity.html
MvvmCross:
- 挂接到通过MvxActivityAdapter在这些事件https://github.com/MvvmCross/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Droid/Views/MvxActivityAdapter.cs
- 这些挂钩调用扩展方法https://github.com/MvvmCross/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Droid/Views/MvxActivityViewExtensions.cs
- 这些扩展方法告知生命周期监控有关生命周期的变化-看https://github.com/MvvmCross/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Droid/Views/MvxAndroidLifeTimeMonitor.cs#L35 -
所有内置MvvmCross活动类型 - MvxActivity,MvxFragmentActivity等 - 称之为“自动”。 这些adaptions可以扩展到使用像在描述的步骤其他作业类型ActionBarSherlock与最新MVVMCross ,或者您的应用程序可以手动调用一些挂钩的,如果它喜欢。
个人意见:我想你会被关闭不遵循更好https://github.com/i486dx400/MultiRegionPresenter过于紧密。 在代码OnCreate
在https://github.com/i486dx400/MultiRegionPresenter/blob/master/RegionEx.Droid/MainActivity.cs似乎尝试Start
每一个MainActivity创建时间的应用程序-这当然可以,发生多每个应用的生命周期中的时间。
相反,读取样本和其他类似http://motzcod.es/post/60427389481/effective-navigation-in-xamarin-android-part-1 , https://github.com/jamesmontemagno/Xam.NavDrawer/tree/主/ MVX和http://enginecore.blogspot.ro/2013/06/more-dynamic-android-fragments-with.html -然后实现的东西,适合您的导航需求。
文章来源: Cannot resolve current top activity while showing viewmodel using mvvmcross