2011-08-10 15 views
7

Tôi đã cố gắng để làm theo điều này example từ Microsoft, tốt nhất tôi có thể nói tôi đã làm tất cả mọi thứ ngoại trừ việc đặt ScheduledTaskAgent và PeriodicTask trong một hội đồng riêng biệt. Khi tôi chạy ứng dụng của mình trong trình mô phỏng và cố gắng khởi chạy tác vụ Định kỳ bằng cách sử dụng:
ScheduledActionService.LaunchForTest (_task.Name, TimeSpan.FromSeconds (60));
Không có gì xảy ra, không có trường hợp ngoại lệ và sau một phút ScheduledTaskAgent không bao giờ bắt đầu và khi tôi xem trong "Cài đặt> Tác vụ nền" trên trình mô phỏng không có gì được liệt kê.ScheduledTaskAgent và PeriodicTask có cần phải được lắp ráp riêng từ ứng dụng chính không?

Trả lời

9

Vâng, họ cần phải được trong một hội đồng riêng biệt, và bạn cần phải tham khảo nó trong WMAppManifest.xaml của bạn, như thế này:

<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> 

Bạn có thể đọc trên MSDN gì các giá trị chính xác cho các BackgroundServiceAgent thuộc tính.

Nếu bạn sử dụng Visual Studio Tác vụ được lập lịch Windows Phone Tác vụ mẫu, tác vụ BackgroundServiceAgent được tự động thêm vào WMAppManifest.xaml với các giá trị chính xác.

+0

Vì vậy, tôi chia ra thành một hội đồng riêng biệt và tôi thấy nó được liệt kê trong "Cài đặt> Tác vụ nền" nhưng không có gì vẫn đang xảy ra. Tôi có cần phải làm gì đặc biệt để gỡ lỗi ScheuledTaskAgent không? – Tyler

+0

1 phút là một khoảng thời gian dài điên rồ. Hãy thử đặt nó thành 0. Và không, không có gì đặc biệt, chỉ nên làm việc. Hãy thử sử dụng một Toast để xem nếu nó thực sự chạy ShellTask ​​ở tất cả! –

+0

Cảm ơn Claus, tôi đã có tên lớp sai trong Manifest, nó hoạt động ngay bây giờ. – Tyler

Các vấn đề liên quan