2012-01-11 60 views
2

我失敗提交(甚至不能讓過去的上傳驗證),因爲我的背景代理創建兩個實例,但我想不出爲什麼。計劃任務出現了兩次

這裏是方法中,在app.xaml.cs(I也曾嘗試用同樣的結果定位它在MainPageVM.cs和MainPage.xaml.cs中)

private void RegisterBackgroundTask() 
{ 
    var taskName = "xxUpdater"; 
    var oldTask = ScheduledActionService.Find(taskName) as PeriodicTask; 
    if (oldTask != null) 
    { 
     ScheduledActionService.Remove(taskName); 
    } 
    PeriodicTask task = new PeriodicTask(taskName); 
    task.Description = Strings.xxBackgroundTaskDescription; 
    oldTask = ScheduledActionService.Find(taskName) as PeriodicTask; 
    if (oldTask == null) 
    { 
     ScheduledActionService.Add(task);     
    } 
    //ScheduledActionService.LaunchForTest(taskName, TimeSpan.FromSeconds(60)); 
} 

這裏是呼叫,在Application_Launching:

private void Application_Launching(object sender, LaunchingEventArgs e) 
{ 
     { RegisterBackgroundTask(); } 
} 

第一次應用程序運行時,我回來了,你看,並有一個任務。然後我再次運行,單步執行,並且移除調用將關閉任務(而不是將其移除)。當它進入添加調用時,它不僅會打開原始任務,而且還會添加另一個。從那時起,當我退出並重新啓動應用程序時,刪除將關閉一個實例,然後離開另一個,並且添加呼叫將其重新打開。除重建或卸載之外,從不是oldTask null。

的,如果(oldTask ==老)起初並不在那裏,我添加它希望它會防止第二實例的創建。有時候,當我卸載時,仍然存在一個關閉的後臺任務,我必須關閉手機才能讓手機關機。

+0

當我嘗試提交,我無法在上傳驗證,「你不能定義背景代理類型scheduledtaskagent超過1個實例。(2019)」 – 2012-01-11 01:09:39

回答

10

我有我的工作的項目同樣的問題。
出於某種原因,我在我的WMAppManifest.xml定義兩次backgroundtask
檢查你WMAppManifest.xml,看看您是否也有它定義了兩次。

+0

這似乎已經做到了!我花了幾天時間,問了很多人,但沒有人提出這個問題。謝謝! – 2012-01-11 01:51:20