バックグラウンド エージェントを使用してバックグラウンドでタイルを更新する WP7.5 アプリに取り組んでいます (アプリが実行されていないとき)。
エージェントの OnInvoke メソッドで、メイン アプリが現在実行されているかどうかを知る方法はありますか?
アプリの終了時にタイルを更新しているため、アプリが実行されている場合にタイルを更新しないようにするために、それを検出したいと思います。
ありがとうございました。
バックグラウンド エージェントを使用してバックグラウンドでタイルを更新する WP7.5 アプリに取り組んでいます (アプリが実行されていないとき)。
エージェントの OnInvoke メソッドで、メイン アプリが現在実行されているかどうかを知る方法はありますか?
アプリの終了時にタイルを更新しているため、アプリが実行されている場合にタイルを更新しないようにするために、それを検出したいと思います。
ありがとうございました。
このMSDNページには、バックグラウンドエージェントでサポートされていないAPIがリストされているだけでなく、使用が推奨されているいくつかのAPIも強調されています。それらの中にはMutexがあります:
Mutexクラスは、分離されたストレージ内のファイルなど、フォアグラウンドアプリケーションとバックグラウンドエージェントの間で共有されるリソースへのアクセスを同期するために使用する必要があります。
これはまさにあなたが望むものでなければなりません。メインアプリケーションで名前付きMutexを作成し、バックグラウンドエージェントで開こうとします。これが成功した場合はメインアプリが実行されており、そうでない場合は実行されていません。
唯一の選択肢は、分離ストレージを使用して通信することです。これは、エージェントとアプリケーションの両方で共有されているためです。
メイン アプリケーションが起動時に空のファイルを作成し、終了時にそれを削除するようにします。エージェントは、そのファイルの存在を確認することで、アプリケーションが実行されているかどうかを判断できます。