我在Android上的LifeTimeChanged事件存在问题
代码:
public class MyApp : Cirrious.MvvmCross.ViewModels.MvxApplication
{
...
public override void Initialize()
{
Mvx.Resolve<IMvxLifetime>().LifetimeChanged += OnLifetimeChanged;
}
private void OnLifetimeChanged(object sender, MvxLifetimeEventArgs e)
{
switch (e.LifetimeEvent)
{
case MvxLifetimeEvent.Deactivated:
case MvxLifetimeEvent.Closing:
MyMethod();
break;
}
}
}
我想在我的应用程序进入后台时调用MyMethod()。
当我使用手机“后退”按钮时 - 一切都好,但是
当我使用手机“Home”按钮时 - LifetimeChanged没有开火。
这是一个错误,还是我需要使用别的东西?
答案 0 :(得分:3)
查看MvxAndroidLifetimeMonitor
的来源,似乎并未触发所有事件。
仅适用于OnCreate
和OnDestroy
。因此,按下主页按钮时。在大多数情况下OnPause
被调用,可能会在OnStop
之后调用,然后调用OnDestroy
,但这实际上取决于它。
如果您想要事件或其他方法,您可以实现自己的MvxAndroidLifetimeMonitor
。
只需继承MvxAndroidLifetimeMonitor
和Setup
覆盖CreateLifetimeMonitor
,并为其提供自己的版本。