我需要将用户在应用程序上花费的总时间保存到独立存储中。
我想我应该知道开始和结束执行的时间。
如果有任何办法,请...
谢谢..
答案 0 :(得分:4)
App.xaml.cs文件中有几个与执行模型直接相关的方法:
你可以挂钩这些方法并提供所需的逻辑,实际上非常简单:
spentTime
; State
恢复spentTime
; State
以便更进一步; spentTime
存储到Isolated Storage。
一些有用的链接,用于理解WP执行模型:
答案 1 :(得分:1)
要添加到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!
}