バックグラウンドタスクがあります。これは、アプリケーションが起動するたびに現在起動されており、現在実行されていません。しかし、可能であれば、起動時にも開始したいと思います。トリガーを調べましたが、起動時にトリガーを開始できるものはないようです。MSDNによると、スタートアップタスクを作成する方法はありますが、現在のタスクをスタートアップタスクに変換する方法については説明されていません。それも可能ですか:
<uap5:Extension Category="windows.startupTask">
<uap5:StartupTask
TaskId="MyStartupId"
Enabled="true"
DisplayName="Background-Keyboard task" />
</uap5:Extension> //Documentation
<Extension Category="windows.backgroundTasks" EntryPoint="Background.BackgroundTask">
<BackgroundTasks>
<Task Type="systemEvent" />
</BackgroundTasks>
</Extension> //My task
私は現在、次のようにタスクを開始します。
var builder = new BackgroundTaskBuilder();
builder.Name = exampleTaskName;
builder.TaskEntryPoint = "Background.BackgroundTask";
ApplicationTrigger _AppTrigger = new ApplicationTrigger();
builder.SetTrigger(_AppTrigger);
builder.Register();
await _AppTrigger.RequestAsync();
編集:これが欲しい私の理由:
私のアプリは、オンとオフを切り替えることができるバックグラウンドサービスを提供します。常に実行されているはずですが、アプリを開いた後は機能します。ただし、デバイスを再起動するたびに開く必要はありません。これは現在のところです。起動時にバックグラウンドサービスを開始できるようにする可能性を追加したいと思います。理想的には、現在の起動方法を維持したい_AppTrigger.RequestAsync();
ので、を介して、有効化/無効化スライダーが機能し続けます。
コメントの一部がすでに示しているように、TriggerType = SessionConnectedのSystemTriggerを使用して、ユーザーがログオンしたときにタスクを開始する必要があります。ApplicationTriggerを使用して、必要なときにいつでもフォアグラウンドアプリからタスクをトリガーすることもできます。同じエントリポイントで2つ以上のトリガーを使用して、同じタスクの実装をトリガーできます。実際、このシナリオを完了するには、SystemTriggerType = PowerChangedトリガーを追加して、電源/スリープ状態の変更をカバーする必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加