连接状态发生变化时是否有要处理的事件?
例如,我的应用程序就像OutLook
. 我想处理一个事件以了解何时有 Internet 连接,然后发送所有待处理的电子邮件。
现在我可以定期检查是否有 Internet 连接,但这对我来说似乎是一个糟糕的解决方案。我会使用一个事件来解决它。
连接状态发生变化时是否有要处理的事件?
例如,我的应用程序就像OutLook
. 我想处理一个事件以了解何时有 Internet 连接,然后发送所有待处理的电子邮件。
现在我可以定期检查是否有 Internet 连接,但这对我来说似乎是一个糟糕的解决方案。我会使用一个事件来解决它。
您最好的选择是实施后台任务。这样,即使您的应用程序在互联网连接可用时不再打开,您也可以发送待处理的电子邮件。
注册后台任务时,您可以设置触发器和条件,以便在您希望任务运行时进行配置:
var trigger = new SystemTrigger(SystemTriggerType.InternetAvailable, false);
var condition = new SystemCondition(SystemConditionType.InternetAvailable);
var builder = new BackgroundTaskBuilder();
builder.Name = "Send pending e-mails task";
builder.TaskEntryPoint = "Tasks.SendPendingEmailTask";
builder.SetTrigger(trigger);
builder.AddCondition(condition);
var task = builder.Register();
您的后台任务必须实现该IBackgroundTask
接口。当任务被触发时,该Run
方法将被调用:
public sealed class SendPendingEmailTask : IBackgroundTask
{
public void Run(IBackgroundTaskInstance taskInstance)
{
var deferral = taskInstance.GetDeferral();
// send your e-mails here
deferral.Complete();
}
}