1. 程式人生 > 其它 >UWP基礎教程 - 重啟應用

UWP基礎教程 - 重啟應用

開發過Winform應用的同學應該都知道,會有一些場景需要將應用重啟,如:重新應用配置,崩潰,記憶體洩漏等情況。這個時候我們只要使用一行程式碼就可以實現重啟。

Application.Restart()

但在之前的Windows10 UWP應用開發中,我們只能提示使用者手動重啟,這個問題一直很困惱開發者。

在16226版本之後,微軟終於實現了這個API。

AppRestartFailureReason result = await CoreApplication.RequestRestartAsync(String.Empty);
if (result == AppRestartFailureReason.NotInForeground || 
    result == AppRestartFailureReason.RestartPending ||
    result == AppRestartFailureReason.Other)
{
    Debug.WriteLine("RequestRestartAsync failed: {0}", result);
}

使用上面的程式碼就能實現UWP APP重啟的功能,這個API還可以自定義啟動引數,只要將上述程式碼String.Empty部分傳入對應的引數,在OnActivated事件處進行處理即可。

protected override void OnActivated(IActivatedEventArgs args)
{
    switch (args.Kind)
    {
        case ActivationKind.Launch:
            LaunchActivatedEventArgs launchArgs = args as LaunchActivatedEventArgs;
            string argString = launchArgs.Arguments;
 
            Frame rootFrame = Window.Current.Content as Frame;
            if (rootFrame == null)
            {
                rootFrame = new Frame();
                Window.Current.Content = rootFrame;
            }
            rootFrame.Navigate(typeof(MainPage), argString);
            Window.Current.Activate();
            break;
    }
}

更詳細的內容,大家可以參考微軟官方部落格寫的How to Restart your App Programmatically