代码之家  ›  专栏  ›  技术社区  ›  Stephan

当Xamarin原生Android应用程序进入睡眠或终止时,如何获得通知?

  •  0
  • Stephan  · 技术社区  · 7 年前

    当Xamarin原生Android应用程序进入睡眠或终止时,如何获得通知?

    搜索时,我只找到了Xamarin的答案 Application OnSleep .

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

    1 回复  |  直到 7 年前
        1
  •  0
  •   FreakyAli    7 年前

    就像 OnSleep Xamarin法形成 OnPause 方法在应用程序进入后台时在Android Native中调用。

    您可以覆盖 暂停 在两个方面 Activity 和 Fragment 大概是这样的:

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

    更新

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

    MainApplication.cs

    然后添加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);
        }
     }