Windows phone 7 如何确定应用程序下载的时间

Windows phone 7 如何确定应用程序下载的时间,windows-phone-7,windows-phone-8,Windows Phone 7,Windows Phone 8,对于试用应用程序,我需要确定应用程序在Windows Phone设备上下载或运行的时间。我希望将此值与当前日期/时间进行比较,然后如果应用程序仍处于试用模式且已在用户设备上运行超过一定天数,则显示一个弹出窗口。检查这个的最好方法是什么?我是否会将应用程序的第一个运行日期时间存储在IsolatedStorage中,并在每次加载应用程序时查询该值?有更好的办法吗?我该怎么做呢?请注意,我目前正在存储应用程序是否已首次加载,以便显示带有一些快速说明/提示的欢迎页面。听起来您想测量应用程序运行的时间(即

对于试用应用程序,我需要确定应用程序在Windows Phone设备上下载或运行的时间。我希望将此值与当前日期/时间进行比较,然后如果应用程序仍处于试用模式且已在用户设备上运行超过一定天数,则显示一个弹出窗口。检查这个的最好方法是什么?我是否会将应用程序的第一个运行日期时间存储在IsolatedStorage中,并在每次加载应用程序时查询该值?有更好的办法吗?我该怎么做呢?请注意,我目前正在存储应用程序是否已首次加载,以便显示带有一些快速说明/提示的欢迎页面。

听起来您想测量应用程序运行的时间(即在前台)

每次启动/激活应用程序时,您都需要记录一个时间戳,关闭/停用应用程序时,您需要记录另一个时间戳。您可以根据这两个时间戳计算经过的时间,并将该值存储在
IsolatedStorage
中。如果某个值已存在于
IsolatedStorage
中,则将新的运行时间添加到现有值中。然后,您可以在启动时检查存储的值,并决定如果超过阈值该怎么办

下面是我用来在
App.xaml.cs
中记录时间戳的(未测试)代码:

DateTime startTimestamp;
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
const int MAX_TRIAL_USAGE = 5;

void Start()
{
    startTimestamp = DateTime.Now;

    if (settings.Contains("ElapsedTime"))
    {
        TimeSpan elapsed = (TimeSpan)settings["ElapsedTime"];

        if (elapsed > TimeSpan.FromDays(MAX_TRIAL_USAGE))
        {
            // Trial has expired, do something
        }
    }
}

void Stop()
{
    TimeSpan elapsed = DateTime.Now - startTimestamp;

    if (!settings.Contains("ElapsedTime"))
    {
        settings.Add("ElapsedTime", elapsed);
    }
    else
    {
        elapsed += (TimeSpan)settings["ElapsedTime"];
        settings["ElapsedTime"] = elapsed;
    }

    settings.Save();
}
最后,将这些方法连接到应用程序生命周期事件:

private void Application_Launching(object sender, LaunchingEventArgs e)
{
    Start();
}

private void Application_Activated(object sender, ActivatedEventArgs e)
{
    Start();
}

private void Application_Deactivated(object sender, DeactivatedEventArgs e)
{
    Stop();
}

private void Application_Closing(object sender, ClosingEventArgs e)
{
    Stop();
}
可能重复的