Как определить, запущено ли основное приложение из фонового агента - PullRequest
0 голосов
/ 19 октября 2011

Я работаю над приложением WP7.5, в котором я использую фоновый агент для обновления плиток в фоновом режиме (когда приложение не запущено).

В методе OnInvoke агента есть ли способ узнать, запущено ли основное приложение в данный момент?

Я хотел бы обнаружить это, чтобы НЕ обновлять плитки, если приложение работает, потому что я уже обновляю их при выходе из приложения.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 20 октября 2011

Эта страница MSDN не только перечисляет неподдерживаемые API для фоновых агентов, но также выделяет некоторые API, которые вам рекомендуется использовать.Среди них есть Mutex :

. Класс Mutex должен использоваться для синхронизации доступа к ресурсам, которые совместно используются приложением переднего плана и фоновым агентом, таким как файлы в изолированном хранилище..

Это должно быть именно то, что вы хотите.Создайте именованный Mutex в своем основном приложении и попробуйте открыть его в фоновом агенте.Если это удастся, значит ваше основное приложение запущено, иначе нет.

2 голосов
/ 19 октября 2011

Ваш единственный выбор - написать изолированное хранилище для связи, поскольку оно совместно используется как агентом, так и приложением.

Попросите основное приложение создать пустой файл при запуске и удалить его при закрытии. Затем ваш агент может определить, запущено ли приложение, проверив наличие этого файла.

...