2015-05-23 2 views
1

Im, развивающий Windows Phone 8.1 WinRT C#/Xaml-приложение, которое нужно загрузить каждую строку json каждое утро.Фоновая задача триггер в определенное время суток в Windows Phone 8.1 приложение

Как мне запустить фоновое задание в определенное время суток. Какой триггер я должен использовать для этого?

Пожалуйста, помогите мне или укажите мне какой-нибудь учебник.

Спасибо

+0

Привет, вы когда-нибудь находили ответ на свой вопрос? не могли бы вы поделиться? – belzebu

+0

@belzebu Пожалуйста, обратитесь к моему ответу ниже. Я разместил этот метод для вас. –

ответ

1

Вот как я решил свою проблему.

public async static Task RegisterBackgroundAgentAsync(string time) 
    { 
     var Datetime = DateTime.ParseExact(time, "HHmm", new System.Globalization.CultureInfo("en-US")); 
     var taskname = "BackgroundAgentTask"; 
     var builder = new BackgroundTaskBuilder(); 
     builder.Name = taskname; 
     builder.TaskEntryPoint = "BackgroundAgent.BackgroundAgentTask"; 
     TimeSpan ts = Datetime - DateTime.ParseExact(DateTime.Now.Hour.ToString("00") + DateTime.Now.Minute.ToString("00"), "HHmm", new CultureInfo("en-US")); 
     if (ts.TotalMinutes < 15) 
     { 
      if (ts.TotalMinutes < 0) 
      { 
       if (1440 + ts.TotalMinutes > 15) 
        builder.SetTrigger(new TimeTrigger((uint)(1440 + ts.TotalMinutes), false)); 
       else 
        builder.SetTrigger(new TimeTrigger(15, false)); 
      } 
      else 
      { 
       if (ts.TotalMinutes == 0) 
        builder.SetTrigger(new TimeTrigger(1440, false)); 
       else 
        builder.SetTrigger(new TimeTrigger(15, false)); 
      } 
     } 
     else 
      builder.SetTrigger(new TimeTrigger((uint)ts.TotalMinutes, false)); 
     BackgroundTaskRegistration result; 
     var bas = (await BackgroundExecutionManager.RequestAccessAsync()); 
     if (bas == BackgroundAccessStatus.AllowedMayUseActiveRealTimeConnectivity) 
      result = builder.Register(); 
    } 
Смежные вопросы