Windows phone: использование периодического агента

У меня есть приложение для Windows Phone markeplace. Пользователи сообщают, что приложение иногда дает сбой на Windows Phone 8. Вот мои данные из отчета центра разработки для Windows Phone:

Функция проблемы:

Microsoft.Phone.Scheduler.SystemNotificationInterop.CheckHr

Тип исключения

system.reflection.targetinvocationexception

Трассировки стека:

Frame    Image                 Function                                                                  Offset        
0        microsoft_phone_ni    Microsoft.Phone.Scheduler.SystemNotificationInterop.CheckHr               0x0000019a    
1        microsoft_phone_ni    Microsoft.Phone.Scheduler.SystemNotificationInterop.CreateNotification    0x0000002e    
2        microsoft_phone_ni    Microsoft.Phone.Scheduler.ScheduledActionService.Add                      0x00000056    
3        myapp_ni              Myapp.MainPage..ctor                                                      0x000000b0

Проблема может быть с фоновым агентом. Я использовал это руководство.

Мой код:

public MainPage()
    {
        InitializeComponent();

        /* Periodic agents*/
            // A unique name for your task. It is used to  
            // locate it in from the service. 
            var taskName = "MyTask";

            // If the task exists 
            var oldTask = ScheduledActionService.Find(taskName) as PeriodicTask;
            if (oldTask != null)
            {
                ScheduledActionService.Remove(taskName);
            }

            // Create the Task 
            PeriodicTask task = new PeriodicTask(taskName);

            // Description is required 
            task.Description = "This saves some data to Isolated Storage";

            // Add it to the service to execute 
            ScheduledActionService.Add(task);

          /* Testing my agent*/
         //   ScheduledActionService.LaunchForTest(taskName, TimeSpan.FromMilliseconds(1500));
           /* Testing my agent*/

        /* Periodic agents */
...

Я прочитал ScheduledActionService.Find выдает исключение ArgumentException, но не понял, что за этим стоит.


person Karloss    schedule 14.12.2013    source источник


Ответы (1)


Вы должны поместить свой код периодического агента в App.xaml.cs внутри метода на Application_Closing

person Raditya Kurnianto    schedule 17.08.2014