我需要将用户在应用程序上花费的总时间保存到一个独立的存储中。
我想我应该知道开始和结束执行的时间。
如果有任何方法可以做到这一点,请..
谢谢..
我需要将用户在应用程序上花费的总时间保存到一个独立的存储中。
我想我应该知道开始和结束执行的时间。
如果有任何方法可以做到这一点,请..
谢谢..
App.xaml.cs 文件中有几个与执行模型直接相关的方法:
您可以挂钩此方法并提供所需的逻辑,这实际上非常简单:
spentTime
;spentTime
Application_Activated -从State
;恢复State
能够进一步得到它;spentTime
到独立存储。
了解 WP 执行模型的一些有用链接:
要添加到 AnatoliiG 的答案,您可以使用DispaterTimer类来计算时间。请小心使用 DateTime.Now 来计算用户使用该应用程序的时间,因为在一年中有时这会给您带来错误的值。
private _DispatcherTimer _timer;
private int _spentTime;
public Application()
{
_timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(1) };
_timer.Tick += TimerTick;
}
TimerTick(object s, EventArgs args)
{
_spentTime++;
}
然后按照 AnatoliiG 示例来节省花费在不同事件上的时间。
private void Application_Launching(object sender, LaunchingEventArgs e)
{
_timer.Start();
// Should probably have some logic to determine if they tombstoned the app
// and did not actually leave the app, if so then save that time
}
private void Application_Activated(object sender, ActivatedEventArgs e)
{
_timer.Start();
// Restore _spentTime
}
private void Application_Deactivated(object sender, DeactivatedEventArgs e)
{
_timer.Stop();
// Store _spentTime
}
private void Application_Closing(object sender, ClosingEventArgs e)
{
// Save time, they're done!
}