Background Task i zdarzenie OnCompleted

Background Task i zdarzenie OnCompleted
J7
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam,

Stworzyłem aplikację, w której wykorzystuję BackgroundTask. W momencie wywołanie metody:

Kopiuj
private BackgroundTaskDeferral _deferral;

...

_deferral.Complete();

w klasie, wywołującej BackgroundTask, wywołuje się metoda:

Kopiuj
 
        private void OnCompleted(IBackgroundTaskRegistration task, BackgroundTaskCompletedEventArgs args)
        {
            ScheduleToast("Tresc", 1);
        }

Ma ona bardzo proste zadanie. Po zakończeniu działania aplikacji w tle powinna wyświetliść zwykły Toast:

Kopiuj
        private void ScheduleToast(String content, int secondsToStart)
        {
            string toastXmlString =
                "<toast>"
                + "<visual version='2'>"
                + "<binding template='ToastText02'>"
                + "<text id='1'>" + "MediGuard (ALARM): " + DateTime.Now.ToLocalTime() + "</text>"
                + "<text id='2'>" + content + "</text>"
                + "</binding>"
                + "</visual>"
                + "</toast>";

            XmlDocument toastDOM = new XmlDocument();
            toastDOM.LoadXml(toastXmlString);

            DateTime startTime = DateTime.Now.AddSeconds(secondsToStart);

            ScheduledToastNotification newToast = new ScheduledToastNotification(toastDOM, startTime);
            newToast.Id = "ALARM_TOAST";

            ToastNotificationManager.CreateToastNotifier().AddToSchedule(newToast);
        } 

Problem tkwi w tym że podczas debugowania aplikacji wszystko działa poprawnie, przełączam sie pomiędzy zadaniami i toast wyświetla sie również prawidłowo, jednak po uruchomieniu zainstalowaniej aplikacji na telefonie bez debugowania nic nie odpowiada. Wiem że aplikacja w tle pracuje jednak wcale nie reaguje. W czym może być problem? Podczas debugowania aby móc wyświetlić Toast muszę przełączyć debugger na stworzony Background Task wówczas on wykonuje dalej swoje działanie i dopiero wtedy wywołuje zdarzenie OnCompleted, czy to może być coś z tym związane?

dam1an
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1589
0

Dodaj jakiś logger i sprawdź co się dzieje w telefonie.

J7
  • Rejestracja: dni
  • Ostatnio: dni
0

Tak sprawdzałem, jednak w wersji release działa również w tle jednak podczas chwili wyswietlenia Toast'a nic sie nie dzieje. Podczas debugowania Toast sie wyświetla poprawnie.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.