2017-03-20 3 views
0

TimeTriggerを使用して15分ごとにバックグラウンドタスクを実行しようとしていますが、何らかの理由で起動できません。ライフサイクルイベントメソッドを試してみました。タスクが電源シェルに登録されていることを確認しました。他に何が間違っていますか?私は妙に見つかったことの一つは、私がUWP TimeTriggerは起動しません

var allowed = await BackgroundExecutionManager.RequestAccessAsync(); 

を実行したときに、私が代わりに

BackgroundAccessStatus.AllowedMayUseActiveRealTimeConnectivity または BackgroundAccessStatus.AllowedWithAlwaysOnRealTimeConnectivity

のBackgroundAccessStatus.AllowedSubjectToSystemPolicyを取り戻すという問題ということですか? BackgroundAccessStatus.AllowedSubjectToSystemPolicyとは何ですか?

更新:

AllowedMayUseActiveRealTimeConnectivityとAllowedWithAlwaysOnRealTimeConnectivityは推奨されません。

リブートは、デスクトップとモバイルの両方で機能しました。明らかに、バックグラウンドタスクプロセスをクラッシュさせるのは簡単です。

また、デスクトップ上でデバッグするためにこれを使用する:

https://docs.microsoft.com/en-us/windows/uwp/launch-resume/debug-a-background-task

+0

問題が修正されるかどうかを確認するためにアプリをアンインストールして再デプロイしましたか? –

+0

私はLumia 950XLにデプロイしようとしましたが、うまくいきました。しかし、不思議なことに、Windows 10のデスクトップではまだ動作しません。 – dreamfly

+0

は再起動後に動作します。 – dreamfly

答えて

0

こんにちは、それは正常に動作しなければならないが、二重のは、私は以下の言及いくつかのポイントをチェックして、あなたが許可されます場合: 1-を確認してくださいバックグラウンドタスクのプロジェクトクラスライブラリなどではなく、Windowsランタイムコンポーネントプロジェクトである必要があります。

2 - バックグラウンドタスクプロジェクトが、現在呼び出すプロジェクトの参照であることを確認します。

3-ことを確認してください、それがエントリーポイントです、あなたのバックグラウンドタスクを定義し、それが入力しますAppxManifest

4-場合は、私が言及したすべてのものはOKだったあなたのC#コードでのように、この中にあなたのバックグラウンドタスクのエントリポイントを呼び出しますあなたの問題を解決することがあります。

BackgroundTaskBuilder build = new BackgroundTaskBuilder(); 
build.TaskEntryPoint = typeof(BGTaskRTComponentProj.BGTaskClass).FullName; 
+0

まだデスクトップでは動作しませんが、携帯電話(Lumia 950XL)で作業してみました。 – dreamfly

+0

プロジェクトがオープンソースの場合は、部分的なコードを送信したり、ソースを共有してください。 また、バックグラウンドタスクプロジェクトのRunメソッドにブレークポイントを設定し、ビジュアルスタジオに警告が表示されないようにすることをお勧めします。 –

+0

最後に、モバイルとデスクトップで作業しました。どんな窓の事でも知られていたはず...救助隊に再起動!うん、プログラムに変更して再起動する必要はありません! – dreamfly

関連する問題