我的Xamarin.Forms Android应用程序中的一项功能允许用户从图库中选择一张照片(来自XLabs的IMediaPicker
自定义控件显示本机图库活动,就像您在任何图片中一样其他常规的Xamarin.Android app)。
问题是有时设备内存不足(同样,正常的东西),当选择图像时,XF的MainActivity
重新启动(按预期),应用程序在主页面中启动,而不是用户以前的页面。
如何在Xamarin.Forms中处理这种情况?例如,在打开图库活动之前从用户所在的页面继续。
答案 0 :(得分:2)
您可以尝试通过覆盖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
}
}
}
}