如何在Xamarin Native Android应用进入睡眠状态或终止时获得通知?
搜索时,我仅找到Xamarin.Forms的答案,其中Application
对象允许覆盖OnSleep
。
这个问题的背景是我想在应用程序进入后台或终止时保存设置。
答案 0 :(得分:0)
就像Xamarin Forms的OnSleep
方法一样,当应用程序进入后台时,OnPause
方法在Android Native中也会被调用。
您可以在OnPause
和Activity
中覆盖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);
}
}