如何 shutdown/restart 我的 UWP 应用程序?
How to shutdown/restart my UWP-Application?
我正在使用 Windows IoT 核心 17763 为 RaspberryPi 开发程序。我的 IDE 是 Visual Studio 2019。我的程序使用 C# 和 UWP。
重新启动和关闭不起作用。
对于这些功能,应用程序有 3 个按钮。
- 按钮退出:终止应用程序并启动物联网核心应用程序。
- 按钮重启:系统完全重启。
- 按钮关机:完全关闭系统。
我的应用程序如何运行?
- 调试时:所有 3 个按钮都只是终止应用程序,调试结束。
- 当应用程序处于自动启动状态时:所有 3 个按钮都会执行应用程序的重启。没有关机,没有重启系统,没有物联网核心应用程序。
这里是我应用的相关代码
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>
当应用程序退出调试模式时,visual studio将断开远程调试。行为是正确的。应用程序退出后,Windows IoT Core 将启动the default app,配置为启动。
ShutdownManager需要使用物联网系统管理能力。 Package.appmanifest需要添加以下内容,否则应用会异常退出
<iot:Capability Name="systemManagement"/>
我正在使用 Windows IoT 核心 17763 为 RaspberryPi 开发程序。我的 IDE 是 Visual Studio 2019。我的程序使用 C# 和 UWP。
重新启动和关闭不起作用。 对于这些功能,应用程序有 3 个按钮。
- 按钮退出:终止应用程序并启动物联网核心应用程序。
- 按钮重启:系统完全重启。
- 按钮关机:完全关闭系统。
我的应用程序如何运行?
- 调试时:所有 3 个按钮都只是终止应用程序,调试结束。
- 当应用程序处于自动启动状态时:所有 3 个按钮都会执行应用程序的重启。没有关机,没有重启系统,没有物联网核心应用程序。
这里是我应用的相关代码
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>
当应用程序退出调试模式时,visual studio将断开远程调试。行为是正确的。应用程序退出后,Windows IoT Core 将启动the default app,配置为启动。
ShutdownManager需要使用物联网系统管理能力。 Package.appmanifest需要添加以下内容,否则应用会异常退出
<iot:Capability Name="systemManagement"/>