1 回答
TA贡献1772条经验 获得超6个赞
您将需要实施,Android.Arch.Lifecycle因为它是处理整个应用程序进入后台并正确重新启动的唯一真正方法(有许多处理 Activity 生命周期方法的技巧,但该库是由 Google 编写的,以避免那些导致和支持的所有问题自 14(?) 以来的所有 API。
第一:将Xamarin.Android.Arch.Lifecycle.Extensionsnuget 包添加到您的应用程序。
第二:在你的项目中实现一个 Android Application 子类,添加一个IGenericLifecycleObserver并通过以下方式注册你的观察者ProcessLifecycleOwner:
注意:您也可以在 Activity 子类中实现这一点,然后将该子类用作所有其他 Activity 的基类(当然除了 Login 之外)。
例子:
[Application]
public class App : Application, IGenericLifecycleObserver
{
public App(IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer) : base(javaReference, transfer) { }
bool Stopped;
public void OnStateChanged(ILifecycleOwner p0, Lifecycle.Event p1)
{
Stopped |= p1 == Lifecycle.Event.OnStop;
if (p1 == Lifecycle.Event.OnStart && Stopped)
{
// app is coming back from being in the background, do something...
Stopped = false; // reset
}
}
public override void OnCreate()
{
base.OnCreate();
ProcessLifecycleOwner.Get().Lifecycle.AddObserver(this);
}
}
- 1 回答
- 0 关注
- 207 浏览
添加回答
举报