3

WinRT アプリを開発しています。要件の 1 つは、アプリに「時間指定ログアウト」機能が必要なことです。これが意味することは、どの画面でも、アプリが 10 分間アイドル状態だった場合、アプリはログアウトしてホーム画面に戻る必要があるということです。

これを行う強引な方法は明らかに、すべてのページのすべてのグリッドでポインターが押されたイベントをフックし、これらのイベントのいずれかが発生した場合にタイマーをリセットすることですが、これを行うためのよりエレガントで信頼性の高い方法があるかどうか疑問に思っていました.

ありがとう、ラジーブ

4

2 に答える 2

3

DispatcherTimer& 複数のイベントを使用すると、それを実現できます。

DispatcherTimer Timer;
private void InitializeTimer()
{
    Dispatcher.AcceleratorKeyActivated += Dispatcher_AcceleratorKeyActivated;
    Window.Current.CoreWindow.PointerMoved += CoreWindow_PointerMoved;
    Window.Current.CoreWindow.PointerPressed += CoreWindow_PointerPressed;

    Timer = new DispatcherTimer();
    Timer.Interval = TimeSpan.FromMinutes(10);
    Timer.Tick += Timer_Tick;
    Timer.Start();
}

private void CoreWindow_PointerPressed(CoreWindow sender, PointerEventArgs args)
{
    Timer.Start();
}

private void CoreWindow_PointerMoved(CoreWindow sender, PointerEventArgs args)
{
    Timer.Start();
}

private void Dispatcher_AcceleratorKeyActivated(CoreDispatcher sender, AcceleratorKeyEventArgs args)
{
    Timer.Start();
}

private void Timer_Tick(object sender, object e)
{
    Timer.Stop();
    //TODO: Do logout.
}
于 2013-09-18T17:49:03.823 に答える