1 回答

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊
您將需要實(shí)施,Android.Arch.Lifecycle因?yàn)樗翘幚碚麄€(gè)應(yīng)用程序進(jìn)入后臺(tái)并正確重新啟動(dòng)的唯一真正方法(有許多處理 Activity 生命周期方法的技巧,但該庫(kù)是由 Google 編寫(xiě)的,以避免那些導(dǎo)致和支持的所有問(wèn)題自 14(?) 以來(lái)的所有 API。
第一:將Xamarin.Android.Arch.Lifecycle.Extensionsnuget 包添加到您的應(yīng)用程序。
第二:在你的項(xiàng)目中實(shí)現(xiàn)一個(gè) Android Application 子類(lèi),添加一個(gè)IGenericLifecycleObserver并通過(guò)以下方式注冊(cè)你的觀察者ProcessLifecycleOwner:
注意:您也可以在 Activity 子類(lèi)中實(shí)現(xiàn)這一點(diǎn),然后將該子類(lèi)用作所有其他 Activity 的基類(lèi)(當(dāng)然除了 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 關(guān)注
- 248 瀏覽
添加回答
舉報(bào)