Detecting inactivity for your (kiosk) application

pavel.fljot's Avatar


19 Sep, 2011 11:36 AM

When developing a kiosk application we usually need to reset it's state after some period of inactivity.

InactivityService — used to notify our context that it's inactive for a certain amount of time:

package mvcs.service
    import configs.AppConfig;

    import mvcs.SignalBus;
    import mvcs.view.IContextView;

    import com.inreflected.ui.managers.InactivityManager;

    import flash.display.InteractiveObject;

     * @author Pavel fljot
    public class InactivityService
        public var signalBus:SignalBus;

        private var inactivityManager:InactivityManager;

        public function InactivityService(contextView:IContextView)
            inactivityManager = new InactivityManager(contextView as InteractiveObject, AppConfig.INACTIVITY_DELAY);
            inactivityManager.addEventListener(InactivityEvent.INACTIVE, inactivityManager_inactiveHandler);

        public function start():void

        public function stop():void

        private function inactivityManager_inactiveHandler(event:InactivityEvent):void

[Inject] in front of class is used for constructor injection to pass our contextView as IContextView (interface that works just as a marker). Don't forget to add IContextView implementation for context view and map it in application context, for example:

injector.mapValue(IContextView, contextView);

I prefer to use SignalBus over separate signal classes (less code to write, easier to develop since I'm not forced to map signal class to something). AppConfig.INACTIVITY_DELAY is a constant — delay in milliseconds, e.g. 1000 * 60 * 15 for 15 minutes.

So you obviously map inactivity notification to some RestartCommand in your application context:

signalCommandMap.mapSignal(signalBus.inactive, RestartCommand);

In my StartupCompleteCommand (executed when app is completely ready to be started) I inject and start my InactivityService:

    // ...

InactivityManager is a small utility that actually tracks a set of events (MouseEvents and KeyborardEvents by default) from a certain scope (InteractiveObject), code on github gist:

  1. Ondina D.F. closed this discussion on 12 Dec, 2011 12:17 PM.

Comments are currently closed for this discussion. You can start a new one.

Keyboard shortcuts


? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac