2013-08-06 22 views
5

Mam zadanie w tle w mojej aplikacji, która jest uruchamiana co 15 minut (na ekranie blokady). Czy można wykryć, czy moja aplikacja działa podczas wykonywania zadania w tle? W takim przypadku chciałbym pominąć wykonywanie zadań w tle, aby uniknąć problemów z współbieżnością.Zadanie w tle i wykrywanie uruchomionej aplikacji

Odpowiedz

2

Nie można wykryć, kiedy aplikacja działa z zadania w tle, ale można wykryć, kiedy zadanie w tle jest uruchamiane z aplikacji przy postępach w postępowaniu w tle i postępach ukończonych.

Ten próbka obejmuje wszystko, co powinno być potrzebne. http://code.msdn.microsoft.com/windowsapps/Background-Task-Sample-9209ade9

+0

Związek ten mi mówi: „Ten artykuł nie został jeszcze opublikowany Jeżeli jesteś właścicielem tego projektu, zaloguj się z odpowiednim kontem.”. –

+1

Wydaje Microsoft usunął stare próbki, I zostały zaktualizowane związek z próbka systemu Windows 8.1. – Tim

1

Ponieważ zarówno aplikacja i zadanie tło mają dostęp do danych aplikacji, mają App Store flagę w ApplicationData.localSettings gdy jest aktywowany, rozliczeń flagę, gdy jest zawieszona i zresetowanie flagi kiedy to wznowione. Zadanie w tle może następnie sprawdzić tę flagę po uruchomieniu i podjąć decyzję.

+2

tak, brzmi jak tylko rozwiązanie, ale co, jeśli aplikacja zostanie nieoczekiwanie zakończona? –

0

Czy brałeś pod uwagę wspólny Mutex? Pozwoli to zaoszczędzić od okropnych sytuacji, w których (na przykład) zadanie w tle zakończy się niepowodzeniem i nie wyczyści jego flagi, lub ustawienie localSettings zostanie uszkodzone.