2

次のドキュメントを参照して、バックグラウンドの定期的なタスクを作成しました。

http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202941(v=vs.105).aspx

どういうわけか、私はそれが実行されているのを見ません。(その意味では、SchedulerTaskAgent.cs クラスの OnInvoke() メソッドは呼び出されませんでした)

デバッガーをオンにすると、次を使用してメソッドを呼び出すことができました。

if(DEBUG_AGENT)
    ScheduledActionService.LaunchForTest(periodicTaskName, TimeSpan.FromSeconds(60));
#endif

60秒ごとに正常に実行されました。OnInvoke() に追加したデバッグ ステートメントが 1 分 (60 秒) ごとに出力されるのを見ました。

次に、上記の行をコメントアウトして、OnInvoke() が OS によって呼び出されるかどうかをテストしました (30 分ごとなど)。

それは決して呼び出されませんでした。電話を Windows コンピューターに接続すると、電話は完全に充電されましたが、Wifi ではなくセルラー ネットワークに接続されていました。

なぜそれがトリガーされなかったのか理解できません。私は昨日一日中試みました(少なくとも6〜8回、30分から1時間待ちました).

使用できない実際のシナリオで定期的なタスクをテストするにはどうすればよいですか: ScheduledActionService.LaunchForTest(...)

私の電話は単にアイドリング状態で、私が使用している電話はテスト専用です (バックグラウンドで実行されているアプリはありません。セルラー ネットワークの信号は非常に良好で、バッテリーは最大 100% でした)。

また、定期的なタスクはメッセージを出力するだけで、ネットワークやリソースを大量に消費するアクティビティは実行しません。

御時間ありがとうございます。

4

1 に答える 1

0

if の前にポンド記号を追加してみてください。例えば。

#if(DEBUG_AGENT)
ScheduledActionService.LaunchForTest(periodicTaskName, TimeSpan.FromSeconds(60));
#endif
于 2013-11-04T02:47:23.713 に答える