Xamarin.Forms Android应用程序在启动外部活动后重新启动

时间:2016-04-17 20:29:04

标签: xamarin xamarin.android xamarin.forms

我的Xamarin.Forms Android应用程序中的一项功能允许用户从图库中选择一张照片(来自XLabs的IMediaPicker自定义控件显示本机图库活动,就像您在任何图片中一样其他常规的Xamarin.Android app)。

问题是有时设备内存不足(同样,正常的东西),当选择图像时,XF的MainActivity重新启动(按预期),应用程序在主页面中启动,而不是用户以前的页面。

如何在Xamarin.Forms中处理这种情况?例如,在打开图库活动之前从用户所在的页面继续。

1 个答案:

答案 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
            }
        }
    }
}
相关问题