在我知道之前我已经问了这个问题但是我无法得到一个直接的答案,也无法在Google上找到一个好的答案。
如果满足某些要求,我想每天向用户发送一次Toast Notification,否则请在第二天检查。我有一个我检查过的SQLite数据库。 我有一个应该工作的后台任务,但它会在我启动应用程序后立即检查但是再也没有..它也很难调试它...:/
我有这个:
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示例..
你们需要帮助我吗?我想我很快就会在屏幕上猛烈抨击......!
编辑: 我是否误解了整个事情..在TaskBuilder类的Run中我应该运行我的方法吗?
我很欣赏这个简单的例子。
答案 0 :(得分:0)
将类似内容添加到后台任务中:
var task = RegisterBackgroundTask("TaskBuilder",
"TimeTriggeredTask",
TimeTrigger(1440, true),//1440 for the number of minutes in a day
null);
您注释掉的代码应该导致后台任务在午夜触发,您说您已成功测试。从那里你需要注册后台任务每24小时重复一次。时间触发器的辅助参数指示是否应该重复。
在运行任务之前仔细检查任务是否未在后台任务中安排,你应该好好去。