UWP_Can 未使用 StartupTask 启动应用程序 Class?
UWP_Can not start app using StartupTask Class?
我按照这篇文章在系统重启时启动我的 UWP 应用程序。
更新
我也试过那篇文章,在那个例子中使用了源代码 Configure your app to start at log-in
以下是现象:
- 当我单击 UWP 应用主页上的请求启用启动按钮时,它显示启动状态为已启用。
- 我检查任务管理器,这个应用程序在启动列表中启用。
- 在我重新启动 PC 并登录后,此应用程序启动并立即最小化到任务栏。
- 当我点击任务栏上的应用程序图标时,应用程序只显示启动画面。
- 我以这种方式离开应用程序几分钟,它突然关闭,没有任何通知。
我可以将我的应用程序注册到启动列表,但在我登录后,我的应用程序不会按照我的意图自动启动。总是像下图
有人有同样的问题吗?我真的需要一些帮助。谢谢。
自official document起,UWP App启动任务扩展为
<Package xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5" ...>
...
<Applications>
<Application ...>
...
<Extensions>
<uap5:Extension Category="windows.startupTask">
<uap5:StartupTask
TaskId="MyStartupId"
Enabled="false"
DisplayName="Test startup" />
</uap5:Extension>
</Extensions>
</Application>
</Applications>
您可以直接复制到您应用的 Package.appxmanifest
。它在我身边有效。请注意,当您的应用程序在启动时启动时,它将在任务栏中最小化。
如果您使用Configure your app to start at log-in博客中的启动任务扩展,您需要修改Executable
和EntryPoint
属性等于应用程序的EntryPoint
属性。注意,避免在 Extension
.
中使用 $targetnametoken$.exe
通配符
<Extensions>
<uap5:Extension
Category="windows.startupTask"
Executable="StartUpTest.exe"
EntryPoint="StartUpTest.App">
<uap5:StartupTask
TaskId="MyStartupId"
Enabled="false"
DisplayName="Test startup" />
</uap5:Extension>
</Extensions>
如果您的应用卡在初始位置,这通常意味着您的代码没有调用 Window.Activate()。
确保按如下方式为 ActivationKind.StartupTask 实现 OnActivate():
protected override void OnActivated(IActivatedEventArgs args)
{
Frame rootFrame = Window.Current.Content as Frame;
if (rootFrame == null)
{
rootFrame = new Frame();
Window.Current.Content = rootFrame;
}
string payload = string.Empty;
if (args.Kind == ActivationKind.StartupTask)
{
var startupArgs = args as StartupTaskActivatedEventArgs;
payload = ActivationKind.StartupTask.ToString();
}
rootFrame.Navigate(typeof(MainPage), payload);
Window.Current.Activate();
}
我按照这篇文章在系统重启时启动我的 UWP 应用程序。
更新
我也试过那篇文章,在那个例子中使用了源代码 Configure your app to start at log-in
以下是现象:
- 当我单击 UWP 应用主页上的请求启用启动按钮时,它显示启动状态为已启用。
- 我检查任务管理器,这个应用程序在启动列表中启用。
- 在我重新启动 PC 并登录后,此应用程序启动并立即最小化到任务栏。
- 当我点击任务栏上的应用程序图标时,应用程序只显示启动画面。
- 我以这种方式离开应用程序几分钟,它突然关闭,没有任何通知。
我可以将我的应用程序注册到启动列表,但在我登录后,我的应用程序不会按照我的意图自动启动。总是像下图
自official document起,UWP App启动任务扩展为
<Package xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5" ...>
...
<Applications>
<Application ...>
...
<Extensions>
<uap5:Extension Category="windows.startupTask">
<uap5:StartupTask
TaskId="MyStartupId"
Enabled="false"
DisplayName="Test startup" />
</uap5:Extension>
</Extensions>
</Application>
</Applications>
您可以直接复制到您应用的 Package.appxmanifest
。它在我身边有效。请注意,当您的应用程序在启动时启动时,它将在任务栏中最小化。
如果您使用Configure your app to start at log-in博客中的启动任务扩展,您需要修改Executable
和EntryPoint
属性等于应用程序的EntryPoint
属性。注意,避免在 Extension
.
$targetnametoken$.exe
通配符
<Extensions>
<uap5:Extension
Category="windows.startupTask"
Executable="StartUpTest.exe"
EntryPoint="StartUpTest.App">
<uap5:StartupTask
TaskId="MyStartupId"
Enabled="false"
DisplayName="Test startup" />
</uap5:Extension>
</Extensions>
如果您的应用卡在初始位置,这通常意味着您的代码没有调用 Window.Activate()。
确保按如下方式为 ActivationKind.StartupTask 实现 OnActivate():
protected override void OnActivated(IActivatedEventArgs args)
{
Frame rootFrame = Window.Current.Content as Frame;
if (rootFrame == null)
{
rootFrame = new Frame();
Window.Current.Content = rootFrame;
}
string payload = string.Empty;
if (args.Kind == ActivationKind.StartupTask)
{
var startupArgs = args as StartupTaskActivatedEventArgs;
payload = ActivationKind.StartupTask.ToString();
}
rootFrame.Navigate(typeof(MainPage), payload);
Window.Current.Activate();
}