Debug les Background Agents

oct 23, 2012 5:27 pm by Julien

Les Background Agents

Pour résumé rapidement, ce sont des tâches qui s'éxecutent en arrière plan.
Il existent 2 sortes de tâches :

  • Tâches Periodiques : Tâche courte de 25 secondes maximum répétée tout les 10 à 30mn jusqu'à l'Expiration Time de la tâche. Au delà de cette durée, la tâche renverra une exception.
  • Tâches nécessitant des ressources : Beaucoup plus contraignant mais permet de réaliser des tâches plus longues (10 mn).
    En revanche, le téléphone doit être branché sur une source d'alimentation (PC ou Secteur) et doit être connecté au net par WiFi ou PC

Debugger ses agents

Lorsqu'on intègre les agents dans un projet, il est utile de pouvoir les tester sans attendre les contraintes de cycles dit précédemment.
Depuis la bétâ 2 du SDK, une nouvelle méthode à fait son apparition LaunchForTes(string,TimeSpan).
Elle permet de forcer l'exécution d'une tâche en spécifiant un delai.

Pour l'utiliser rien de plus simple :

 

 private static void CreateTileTask()
        {
            try{
 	           	//Création de l'agent
	            	PeriodicTask periodicTask = new PeriodicTask("TileAgent");

  	          	periodicTask.Description = "Periodic agent to update tile";
	            	periodicTask.ExpirationTime = System.DateTime.Now.AddDays(1);

            		//Supprimer l'agent si il existe déjà
            		if (ScheduledActionService.Find("TileAgent") != null)
            		{
                		ScheduledActionService.Remove("TileAgent");
            		}

            		ScheduledActionService.Add(periodicTask);

           		//Force l'exécution, à n'utiliser qu'en debug
            		ScheduledActionService.LaunchForTest("TileAgent", TimeSpan.FromMilliseconds(1500));
		}
                  catch(InvalidOperationException ex){}
        }

PS : Il est important d'entourer le traitement par un try/catch car si l'utilisateur désactive l'agent, l'application renverra une exception du type BNS Error: The action is disabled !

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading