如何每20天启动一些方法(Windows Phone)
本文关键字:Windows Phone 方法 何每 20天 启动 | 更新日期: 2023-09-27 18:36:48
在我的Windows Phone应用程序中,我需要实现逻辑以每20天启动一些方法,我该如何实现?
public void Method()
{
//some logic
}
更新例如,我可以修复某个方法的第一次启动,然后每次启动应用程序我都会修复当前日期时间,他们计算差异,如果某个方法的最后一次和第一次启动之间的差异超过 30 天,我将启动 Method()。那么如何计算差值(天)呢?
不容易!
最适合此操作的是使用计划代理 - 但这大约运行一次 30 分钟 - 因此您需要跟踪上次运行时间并采取相应措施。
这样做的另一个问题是,如果与计划任务关联的应用程序至少每 14 天未运行一次,则该任务将被禁用。
呵呵,鲁珀特。
因此,
你想知道自上次在应用中执行操作以来是否已过 20 天(或更长时间?)。
假设您将要计算的日期保存为名为 savedDate
的DateTime
。(我假设您可以将其放入并从隔离存储中检索而不会出现问题。
然后,您可以针对当前日期进行简单的测试:
if (saveddate.Date.AddDays(20) <= DateTime.UtcNow.Date)
{
// Do your every 20 days action here
// and then probably reset savedDate to the current date?
}
推送通知呢?您让服务器处理此问题。当时间准备好时,它会向手机发送通知,手机会相应地执行操作。
编辑:要找到差异,您可以执行以下操作
TimeSpan span = endTime.Subtract(startTime);
if(span.Days >= 20)
Method();
可以将上次运行该方法的时间存储在独立存储中,然后使用计划代理每 30 分钟运行一次:
if (DateTime.Now.Subtract(LastTimeRanFromIsolatedStorage) > TimeSpan.FromDays(20))
{
Method();
}