如何关闭/重新启动我的UWP应用程序?

时间:2019-08-05 21:39:29

标签: c# uwp restart shutdown windows-iot-core-10

我正在为带有Windows IoT核心17763的RaspberryPi编写程序。我的IDE是Visual Studio2019。我在程序中使用C#和UWP。

重新启动和关闭均无效。 对于这些功能,该应用程序具有3个按钮。

  • 按钮退出:终止应用程序并启动IoT核心应用程序。
  • 按钮重新启动:系统完全重新启动。
  • 按钮关闭:完全关闭系统。

我的应用程序如何运行?

  1. 调试时:所有3个按钮仅终止应用程序,调试结束。
  2. 当应用程序处于自动启动状态时:所有3个按钮将重新启动应用程序。没有关机,没有系统重启,没有IoT核心应用程序。

这是我的应用程序的相关代码

using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using System;
using Windows.System;

public sealed partial class MainPage : Page
{

    public MainPage()
    {
        InitializeComponent();
    }

    //button to exit application
    private void FlyoutExit_Click(object sender, RoutedEventArgs e)
    {
        Application.Current.Exit();
    }

    //button to restart system
    private void FlyoutReboot_Click(object sender, RoutedEventArgs e)
    {
        ShutdownManager.BeginShutdown(ShutdownKind.Restart, TimeSpan.FromSeconds(0));
    }

    //button to shutdown system
    private void FlyoutShutdown_Click(object sender, RoutedEventArgs e)
    {
        ShutdownManager.BeginShutdown(ShutdownKind.Shutdown, TimeSpan.FromSeconds(0));
    }

}

这是Package.appxmanifest

<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:iot="http://schemas.microsoft.com/appx/manifest/iot/windows10"
IgnorableNamespaces="uap mp iot">
<Capabilities>
<iot:Capability Name="systemManagement"/>
<Capability Name="internetClient" />
<iot:Capability Name="lowLevelDevices"/>
<DeviceCapability Name="serialcommunication">
  <Device Id="any">
    <Function Type="name:serialPort" />
  </Device>
</DeviceCapability>
</Capabilities>
</Package>

1 个答案:

答案 0 :(得分:1)

  1. 在调试模式下退出应用程序时,Visual Studio将断开远程调试的连接。行为是正确的。应用程序退出后,Windows IoT核心版将启动the default app,它已配置为启动状态。

  2. ShutdownManager 需要使用IoT系统管理功能。您需要将以下内容添加到Package.appmanifest中,否则,该应用程序将退出并出现异常。

    <iot:Capability Name="systemManagement"/>