Я спросил об этом, прежде чем я знаю .. но я не могу получить прямой ответ и не могу найти хороший на google.Запуск фоновой задачи в определенное время - UWP
Я хочу отправить уведомление о Toast пользователю один раз в день, если выполнены некоторые требования, в противном случае проверьте на следующий день. У меня есть SQLite db, с которым я проверяю. У меня есть фоновая задача, которая должна работать, но он проверяет, как только я запустить приложение, но никогда .. его очень трудно отладить это так ..:/
У меня есть это:
public async void RegisterBackgroundTask()
{
var tommorowMidnight = DateTime.Today.AddDays(1);
var timeTilMidnight = tommorowMidnight - DateTime.Now;
var minutesTilMidnight = (uint)timeTilMidnight.TotalMinutes;
var task = RegisterBackgroundTask("TaskBuilder",
"TimeTriggeredTask",
new TimeTrigger(15, false), //new TimeTrigger(minutesTilMidnight, false),
null);
await task;
CheckPremieres(); //My method that i want to check only once a day at 00:00
}
Я также попытался это:
public async void RegisterBackgroundTask()
{
var tommorowMidnight = DateTime.Today.AddDays(1);
var timeTilMidnight = tommorowMidnight - DateTime.Now;
var minutesTilMidnight = (uint)timeTilMidnight.TotalMinutes;
var task = RegisterBackgroundTask("TaskBuilder",
"TimeTriggeredTask",
new TimeTrigger(15, false), //new TimeTrigger(minutesTilMidnight, false),
null);
await task.ContinueWith((x) =>
{
CheckPremieres(); //My method that i want to check only once a day at 00:00
});
}
15мина только для тестирования, комментарий из реального кода.
Моя проблема в том, что это не работает так, как сейчас, потому что, как я уже сказал, он проверяет только один раз .. то ничего, когда программа работает, ничего, когда программа помещается на задний план .. Что я делаю неправильно ??
Методы выше в моем классе notificationhandler наряду с методом RegisterBackgroundTask .. то у меня есть taskbuilder класс .. но один как это на примере MS GitHub ..
Есть ли другая информация вы ребята должны быть способны помочь мне? Думаю, я скоро задушу голову на экране ...!
Редактировать: Не понял ли я все это. Это в Run в классе TaskBuilder, я должен запустить мой метод?
Я простой пример будет высоко ценится ..
Почему вы просто не используете DispatcherTimer для выполнения задачи один раз в день? это будет проще всего для вас. – DSA
Как DT помог мне? Потому что, как я понимаю, фоновая задача - лучший способ пойти с UWP? Becasue, BT работает, даже если приложение выключено .. – Tom
Код, как вы его показываете, не компилируется. Но похоже, что вы пытаетесь продолжить работу в фоновом режиме в течение 15 минут (или даже до полуночи). Это не будет работать. Вам нужно, чтобы система разбудила вас. См. Более старый документ, но все же хорошее введение https://www.microsoft.com/en-us/download/details.aspx?id=27411 –