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

时间:2012-06-12 08:24:09

标签: c# silverlight windows-phone-7

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

public void Method()
{
//some logic

}

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

4 个答案:

答案 0 :(得分:3)

不容易!

最适合这种情况的是使用预定代理 - 但这大约会运行30分钟 - 因此您需要跟踪上次运行时间并采取相应措施。

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

HTH, 鲁珀特。

答案 1 :(得分:2)

所以你想知道自从你上次在你的应用程序中执行了一个动作以来是否已经过了20天(或更多?)。

我们假设您将日期保存为DateTime,名为savedDate。 (我假设你可以把它放入并从IsolatedStorage中检索而没有问题。)
然后你可以对当前日期做一个简单的测试:

if (saveddate.Date.AddDays(20) <= DateTime.UtcNow.Date)
{
    // Do your every 20 days action here 
    // and then probably reset savedDate to the current date?
}

答案 2 :(得分:0)

推送通知怎么样?你让服务器来处理这个问题。当时间准备好后,它会向手机发送通知,相应地做相应的事情。

编辑: 要找到差异,你可以做这样的事情

TimeSpan span = endTime.Subtract(startTime);  
if(span.Days >= 20)
   Method();

答案 3 :(得分:0)

您可以在Isolated Storage中存储上次运行该方法的时间,然后使用预设代理每30分钟运行一次:

if (DateTime.Now.Subtract(LastTimeRanFromIsolatedStorage) > TimeSpan.FromDays(20))
{
   Method();
}