2016-04-17 208 views
3

我的Xamarin.Forms Android應用程序中的一項功能允許用戶從圖庫中選擇一張照片(它是顯示本地圖庫活動的XLabs中的IMediaPicker自定義控件,就像你在任何其他常規Xamarin.Android應用程序中做的一樣)。Xamarin.Forms Android應用程序在外部活動啓動後重新啓動

問題是,有時設備的內存不足(同樣是普通的東西),當選擇圖像時,XF的MainActivity重新啓動(按預期),應用程序從主頁面開始,而不是用戶以前的頁面。

如何處理Xamarin.Forms中的這種情況?例如,在用戶開啓圖庫活動之前從用戶頁面繼續。

回答

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 
      } 
     } 
    } 
} 
相關問題