Xamarin Native Android应用进入睡眠状态或终止时如何获得通知?

时间:2018-11-26 04:48:40

标签: xamarin.android

如何在Xamarin Native Android应用进入睡眠状态或终止时获得通知?

搜索时,我仅找到Xamarin.Forms的答案,其中Application对象允许覆盖OnSleep

这个问题的背景是我想在应用程序进入后台或终止时保存设置。

1 个答案:

答案 0 :(得分:0)

就像Xamarin Forms的OnSleep方法一样,当应用程序进入后台时,OnPause方法在Android Native中也会被调用。

您可以在OnPauseActivity中覆盖Fragment,如下所示:

protected override void OnPause()
    {
        base.OnPause();
        // Add your code here
    }

更新

您可以通过添加Android Application类在应用程序级别执行相同的操作:

在您的项目中添加一个名为MainApplication.cs的新C#类文件。

然后添加Application.IActivityLifecycleCallbacks接口,您可以在其中找到带有活动上下文的活动已暂停方法,以便在其中添加活动并进行需要的操作。

 #if DEBUG
 [Application(Debuggable = true)]
 #else
 [Application(Debuggable = false)]
 #endif
  public class MainApplication : Application , Application.IActivityLifecycleCallbacks
{
     public MainApplication(IntPtr handle, JniHandleOwnership transer)
    : base(handle, transer)
    {
    }

  public void OnActivityPaused(Android.App.Activity activity)
    {
        base.OnCreate();
        // Add some code
    }

  public override void OnTerminate()
    {
        base.OnTerminate();
        UnregisterActivityLifecycleCallbacks(this);
    }
    public override void OnCreate()
    {
        base.OnCreate();
        RegisterActivityLifecycleCallbacks(this);
    }
 }