当应用程序从主页按钮转到后台时,LifetimeChanged事件不会触发

时间:2015-10-12 11:52:36

标签: android mvvmcross

我在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没有开火。

这是一个错误,还是我需要使用别的东西?

1 个答案:

答案 0 :(得分:3)

查看MvxAndroidLifetimeMonitor的来源,似乎并未触发所有事件。

仅适用于OnCreateOnDestroy。因此,按下主页按钮时。在大多数情况下OnPause被调用,可能会在OnStop之后调用,然后调用OnDestroy,但这实际上取决于它。

如果您想要事件或其他方法,您可以实现自己的MvxAndroidLifetimeMonitor

只需继承MvxAndroidLifetimeMonitorSetup覆盖CreateLifetimeMonitor,并为其提供自己的版本。