0

設備屏幕旋轉時是否有任何方法被調用? Android中的數據是否被刪除和恢復?Windows 10手機旋轉屏幕/屏幕方向

當屏幕旋轉時,Android應用程序被銷燬並重新啓動。要在旋轉過程中保持其地位,你需要調用:

onSaveInstanceState() 

onRestoreInstanceState() 

在Windows 10通用的應用設備旋轉過程中有一個存儲會話狀態?

+0

您可以使用SizeChanged事件。比較高度和寬度值以確定橫向和縱向模式。保持一個變量來知道當前的模式。使用這些可以確定屏幕旋轉。 –

+0

我只想知道當屏幕旋轉時,數據字段存儲在某處並重新輸入,或者除了方向改變之外什麼都沒有發生,在Windows 10手機/移動設備中發生了什麼? – Icero

+1

我想只有佈局中的元素再次呈現。破壞和重新啓動沒有任何反應。 –

回答

0

我知道這是舊的,你可能已經搬到了別的東西上。對於遇到這個問題的其他人(比如我),答案是:是的,有一種方法。是的,它看起來就像數據被存儲和檢索一樣,系統會爲你處理你的'Bundle'。

在你App.xaml.cs文件中,有一個方法:

/// <summary> 
    /// Invoked when application execution is being suspended. Application state is saved 
    /// without knowing whether the application will be terminated or resumed with the contents 
    /// of memory still intact. 
    /// </summary> 
    /// <param name="sender">The source of the suspend request.</param> 
    /// <param name="e">Details about the suspend request.</param> 
    private void OnSuspending(object sender, SuspendingEventArgs e) 
    { 
     var deferral = e.SuspendingOperation.GetDeferral(); 
     //TODO: Save application state and stop any background activity 
     deferral.Complete(); 
    } 

這會保存狀態爲您服務。這是有道理的,我的Windows手機將返回按鈕到上次我點擊主屏幕時。如果我從應用程序轉到應用程序,後退按鈕會通過每個應用程序返回,保持我離開的地方。

當我在窗口上放置一個TextBlock並使用按鈕更改文本時,文本在旋轉後保持不變。在我退出應用程序的「返回按鈕」或「主頁」後,它實際上保持不變。保持狀態似乎不成問題,失去它可能是。 (從現在起,我會記得放置一個「重置」按鈕或方法!)

OnSuspending()定義在sealed partial class App : Application中,密封意味着您不能擴展它,因此您也不能覆蓋OnSuspending()