2011-08-10 13 views
7

Intenté seguir este example de Microsoft, lo mejor que puedo decir es que hice todo excepto poner el ScheduledTaskAgent y PeriodicTask en un ensamblaje separado. Cuando ejecuto mi aplicación en el emulador e intento iniciar la tarea periódica usando:
ScheduledActionService.LaunchForTest (_task.Name, TimeSpan.FromSeconds (60));
No ocurre nada, sin excepciones y después de un minuto el ScheduledTaskAgent nunca se inicia y cuando miro en "Configuración> Tareas en segundo plano" en el emulador, no aparece nada.¿El ScheduledTaskAgent y PeriodicTask deben estar en un ensamblaje separado de la aplicación principal?

Respuesta

9

Sí, tienen que estar en un ensamblado independiente, y hay que hacer referencia a ella en su WMAppManifest.xaml, así:

<Tasks> 
    <DefaultTask Name="_default" NavigationPage="Views/MainPage.xaml" /> 
    <ExtendedTask Name="BackgroundTask"> 
     <BackgroundServiceAgent Specifier="ScheduledTaskAgent" Name="DMI.ScheduledAgent" Source="DMI.TaskAgent" Type="DMI.TaskAgent.ScheduledAgent" /> 
    </ExtendedTask> 

se puede leer en MSDN lo que los valores correctos para los BackgroundServiceAgent atributos son.

Si utiliza el Visual Studio Windows Phone tarea programada Agente plantilla, la tarea BackgroundServiceAgent se añade automáticamente en el WMAppManifest.xaml con los valores correctos.

+0

Así que lo dividí en un conjunto separado y lo veo enumerado en "Configuración> Tareas en segundo plano", pero todavía no ocurre nada. ¿Debo hacer algo especial para depurar el ScheuledTaskAgent? – Tyler

+0

1 minuto es un período increíblemente largo. Intenta configurarlo en 0. Y no, nada especial, debería funcionar. Prueba usar un Toast para ver si realmente está ejecutando ShellTask. –

+0

Gracias, Claus, tenía el nombre de clase incorrecto en el Manifiesto, está funcionando ahora. – Tyler

Cuestiones relacionadas