您可以嘗試通過覆蓋OnSleep method來保存應用程序的狀態。
在Xamarin Forms Samples中有一個實施例。特別是,檢查OnSleep和OnResume:
protected override void OnSleep()
{
Debug.WriteLine ("OnSleep saving ResumeAtTodoId = " + ResumeAtTodoId);
// the app should keep updating this value, to
// keep the "state" in case of a sleep/resume
Properties ["ResumeAtTodoId"] = ResumeAtTodoId;
}
protected override void OnResume()
{
Debug.WriteLine ("OnResume");
if (Properties.ContainsKey ("ResumeAtTodoId")) {
var rati = Properties ["ResumeAtTodoId"].ToString();
Debug.WriteLine (" rati="+rati);
if (!String.IsNullOrEmpty (rati)) {
Debug.WriteLine (" rati = " + rati);
ResumeAtTodoId = int.Parse (rati);
if (ResumeAtTodoId >= 0) {
var todoPage = new TodoItemPage();
todoPage.BindingContext = Database.GetItem (ResumeAtTodoId);
MainPage.Navigation.PushAsync (
todoPage, false); // no animation
}
}
}
}