- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
IMvxAndroidCurrentTopActivity
可用于获取 MvvmCross Android 应用程序中的当前顶级事件。
问题是:MvvmCross 会在顶级 Activity 发生变化时立即创建此接口(interface)的新实例,还是会重用相同实例并仅更改 Activity
属性.
背景:我想将该接口(interface)作为注册为单例的类中的构造函数依赖项。
会成功吗?
最佳答案
在默认的 MvvmCross 设置中,该接口(interface)被实现为单例 - 因此只要您的应用程序在内存中,就可以保证返回相同的实例
参见 https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Droid/Platform/MvxAndroidSetup.cs#L76 中的 InitializePlatformServices
protected override void InitializePlatformServices()
{
var lifetimeMonitor = new MvxAndroidLifetimeMonitor();
Mvx.RegisterSingleton<IMvxAndroidActivityLifetimeListener>(lifetimeMonitor);
Mvx.RegisterSingleton<IMvxAndroidCurrentTopActivity>(lifetimeMonitor);
Mvx.RegisterSingleton<IMvxLifetime>(lifetimeMonitor);
Mvx.RegisterSingleton<IMvxAndroidGlobals>(this);
var intentResultRouter = new MvxIntentResultSink();
Mvx.RegisterSingleton<IMvxIntentResultSink>(intentResultRouter);
Mvx.RegisterSingleton<IMvxIntentResultSource>(intentResultRouter);
var viewModelTemporaryCache = new MvxSingleViewModelCache();
Mvx.RegisterSingleton<IMvxSingleViewModelCache>(viewModelTemporaryCache);
}
这种单例性质实际上是该接口(interface)定义的一部分 - 所以如果您要覆盖 android 设置,那么您真的应该将此注册保持为单例。
在一般层面上,恐怕目前在 MvvmCross 中只有一种方法可以判断一个接口(interface)或对象是注册为单例还是注册为动态按需创建对象 - 查看源代码
在未来,这可能会通过 XML 注释或某种命名约定来实现,但我认为目前没有这些计划,而且这些技术都不会在编译时检查。
关于c# - IMvxAndroidCurrentTopActivity 是单例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17466488/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!