最初に、私は自分の研究をしたと言わせてください。私は約 1 日半、ビデオを見たり、MSDN を読んだり、テストしたり、実験したりしました。この問題はまだ解決していません。私のすべての調査にもかかわらず、これはかなり広範な質問になるので、申し訳ありません。これはおそらく、部分的には Windows Phone 8.1 の新機能によるものです。
私の目標はint
、アプリが実行されていないときでも、1 時間に 1 回インクリメントすることです。明らかに、これを行う最善の方法は と を使用することTimeTrigger
ですBackgroundTask
。ソリューションでWindows Runtime Component
呼び出される別のプロジェクト ( ) を作成しました。BackgroundTaskProject
そのクラスの名前を に変更しましたBackgroundTaskClass
。BackgroundTaskProject
メインプロジェクトから参照しました。
では、とその方法 BackgroundTaskClass
を実装しました。質問 1: メイン プロジェクトで値をインクリメントするだけの場合、このメソッドで何かが行われますか? もしそうなら、何?IBackgroundTask
Run
RegisterBackgroundTask
メソッドを MSDN からにコピー アンド ペーストしましBackgroundTaskClass
た。
私の主なプロジェクトでは、TimeTrigger
. BackgroundTask
のstatic RegisterBackgroundTask
方法で登録しましたBackgroundTaskClass
。/メソッドにより、これBackgroundTask
が型の変数に割り当てられるように変更しました。Task<BackgroundTaskRegistration>
await
async
究極の質問: myInt++
1 時間に 1 回実行するようにするにはどうすればよいでしょうか? (myInt
私のメインプロジェクトにあります。)
リクエストに応じて特定のコードを提供したり、質問に答えたりすることができますが、必要になる可能性があるものを次に示します。
メインプロジェクト/クラス:
TimeTrigger hourlyTrigger = new TimeTrigger(60, false);
Task<BackgroundTaskRegistration> task = BackgroundTaskProject.BackgroundTaskClass.RegisterBackgroundTask("BackgroundTaskProject.BackgroundTaskClass", "Number Incrementer", hourlyTrigger, null);
でBackgroundTaskClass
:
Copy and pasted from MSDN (http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh977055.aspx and http://msdn.microsoft.com/en-us/library/windows/apps/xaml/jj553413.aspx)