如何每20天启动一些方法(Windows Phone)

本文关键字:Windows Phone 方法 何每 20天 启动 | 更新日期: 2023-09-27 18:36:48

在我的Windows Phone应用程序中,我需要实现逻辑以每20天启动一些方法,我该如何实现?

public void Method()
{
//some logic
}

更新例如,我可以修复某个方法的第一次启动,然后每次启动应用程序我都会修复当前日期时间,他们计算差异,如果某个方法的最后一次和第一次启动之间的差异超过 30 天,我将启动 Method()。那么如何计算差值(天)呢?

如何每20天启动一些方法(Windows Phone)

不容易!

最适合此操作的是使用计划代理 - 但这大约运行一次 30 分钟 - 因此您需要跟踪上次运行时间并采取相应措施。

这样做的另一个问题是,如果与计划任务关联的应用程序至少每 14 天未运行一次,则该任务将被禁用。

呵呵,鲁珀特。

因此,

你想知道自上次在应用中执行操作以来是否已过 20 天(或更长时间?)。

假设您将要计算的日期保存为名为 savedDateDateTime。(我假设您可以将其放入并从隔离存储中检索而不会出现问题。
然后,您可以针对当前日期进行简单的测试:

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();
}