Я использую фоновую задачу для выполнения действий, когда приложение не запущено. Ниже приведен пример кода, который следует вызывать каждые 30 минут и добавить метку времени в файл в изолированном хранилище. Проблема в том, что фоновая задача (событие OnInvoke) вызывается только во время добавления (ScheduledActionService.Add (periodTask);). Это не называется каждые 30 минут.
protected override void OnInvoke(ScheduledTask task)
{
using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
if (myIsolatedStorage.FileExists("testbg.txt"))
{
EditExistingFile("testbg.txt", DateTime.Now.ToString() + Environment.NewLine);
}
else
{
CreateNewFile("testbg.txt", DateTime.Now.ToString() + Environment.NewLine);
}
}
NotifyComplete();
}
public static void StartBackgroundTask()
{
PeriodicTask periodicTask = new PeriodicTask("Project One Tasks");
// The description is required. This is the string that the user
// will see in the background services Settings page on the device.
periodicTask.Description = "Performs various activities related to Project One.";
periodicTask.ExpirationTime = DateTime.Now.AddDays(10);
// If the agent is already registered with the system,
// call the StopPeriodicAgent helper method.
if (ScheduledActionService.Find(periodicTask.Name) != null)
{
StopBackgroundTask();
}
ScheduledActionService.Add(periodicTask);
}
Edit:
Одна вещь, которую я заметил, когда я запускаю Периодическую или ResourceIntensive Task, я получаю следующий диалог:
Microsoft Visual Studio 2010 Express для Windows Phone
Удаленное соединение с устройством потеряно. Пожалуйста, проверьте подключение устройства и перезапустите отладку.
OK
Кто-нибудь получал это сообщение при вызове Задачи?