2017-11-16 14 views
0

私はC#を使用して、プラットフォームバージョン10.0.14393.0をターゲットとするデスクトップコンピュータ上でのみ動作するWindows 10用のUWPアプリケーションを開発しています。ビジネス要件のため、アプリケーションのライフサイクルは従来のWin32アプリケーションのように動作する必要があります。UWPアプリのサスペンドを無効にするにはどうすればよいですか?

したがって、私はthis articleから​​にExtendedExecutionReason.Unspecifiedと要求するように勧めました。私はまたスリープ状態にならず、休止状態にならないようにWindowsを構成しました。

ただし、Windowsは理由がSystemPolicyの拡張実行セッションを取り消し、その後UWPアプリケーションを中断します。

つの質問:(?システムログイベントログ)

  1. どのように私はより多くの情報を得ることができる拡張実行セッションを取り消すWindowsにつながっ何について?
  2. UWPアプリのライフサイクルがWin32アプリケーションとまったく同じように動作する(つまり、ユーザーが明示的に実行を停止するまで実行し続ける)ように、これらのまれなケースを取り除くにはどうすればよいですか?

ありがとう!

+0

あなたのアプリをテストしたPCにバッテリが搭載されているか、無停電電源装置に接続されていますか? –

+0

PCにバッテリがなく、AC電源コンセントに差し込まれています。 – hwaien

答えて

1

​​ExtendedExecutionReason.Unspecifiedは、リソース消費に関する複数の制限の対象です。あなたのテストデバイスはバッテリーを持っていないので、あなたのアプリケーションが中断している可能性が高い理由は、そのメモリ使用量が多いことです。ドキュメンテーションの示唆しているように、メモリ消費量の観点からアプリを最適化してMemory Management APIsを使用することはできますが、アプリが中断されることはありません。

アプリがビジネスセクター向けのアプリであれば、​​ではなく、より強力なExtendedExecutionForegroundSessionを使用することを検討することもできます。これはおそらくあなたの問題のための完璧な解決策になるでしょう。しかしそれは制限された機能です。つまり、それを利用するアプリはWindowsストアには許可されません.Windows Store for Businessだけが許可されます。また、マニフェストのextendedExecutionUnconstrained機能を手動で宣言して(Special and restricted capabilities section of documentationを参照)、APIを利用する必要があります。 pnp0a03が示唆したようにWin32のアプリケーションと通信するためのApp services

  1. 用途:

    別の方法としては、長時間にわたって中断し得ることからアプリを防ぐためのハックを使用することができます。

  2. (ユーザーが手動で停止させたり、他のアプリが独自のバックグラウンドオーディオを再生するには、それを一時停止した場合でも、あなたのアプリがそれを追跡し、自動的に再起動することができます無限ループにバックグラウンドでサイレントオーディオサンプルを再生するための使用Background Media Playback再生)。

1

私は、Appサービスを使ってWin32アプリケーションと通信すると、アプリケーションがサスペンド状態になるのを防ぎます。 投稿を参照したサンプルアプリで問題を再現することに成功しました。

これは意図された動作ではありませんが、状況を解決するのに役立ちます。

UWP application not going to suspend state

0

使用Visual Studioのデバッグモードアプリを実行すると、アプリが中断状態に実行されることはありません。これはVisual Studioで目を覚まされています。

これは単なる冗談です。

残念ながら、あなたが期待するのは、UWPの設計原則と矛盾する動作です。

システムは、「延期」の後にバックグラウンドアプリを一時停止する権利を留保します。拡張実行セッションをリクエストした場合は、取り消しの準備もしなければならず、壁の電源に接続してもアプリケーションは永久に実行されません。

オプション1はデスクトップアプリケーションに対応していますが、これはオプションではない可能性があります。 UWPのようなユーザーが「サスペンド」という考えを好まないためにこの要件を取得した場合(何が...サスペンドされているのか)、この要件を満たすことができないのではないかと心配しています。

オプション2は...アプリが実行されても、バックグラウンドに切り替える必要がある実際のタスクはありますか?タスクが定期的に実行される必要がある場合、メールアカウントの受信ボックスをチェックするような場合、タイマーによってトリガーされる何らかのバックグラウンドタスクを使用できます。

オプション3:キオスクモードを考えてください。デバイスで実行できるアプリは1つだけなので、バックグラウンドに切り替えることはできません。

関連する問題