             // This method called on Android when app run in background
             if (sessionCachingEnabled)
             {
-                persistenceManager.setProperty("selectedSection", navigator.selectedIndex);
-                
-                if (navigator.activeView)
-                {
-                    navigator.activeView.active = false;
-                    navigator.persistCurrentView();
-                }
-                
-                persistenceManager.flush();
+                // Dispatch event for saving persistence data
+                var eventDispatched:Boolean = true;
+                if (hasEventListener(FlexEvent.APPLICATION_PERSIST))
+                    eventDispatched = dispatchEvent(new FlexEvent(FlexEvent.APPLICATION_PERSIST, false, true));
+                
+                if (eventDispatched)
+                {
+                    // Save version number of application
+                    var appDescriptor:XML = NativeApplication.nativeApplication.applicationDescriptor;
+                    var ns:Namespace = appDescriptor.namespace();
+                    
+                    persistenceManager.setProperty("applicationVersion", appDescriptor.ns::versionNumber.toString());
+                    persistenceManager.setProperty("timestamp", new Date().getMilliseconds());
+                    persistenceManager.setProperty("selectedSection", navigator.selectedIndex);
+                    persistenceManager.setProperty("sectionData", sections);
+                    
+                    if (navigator.activeView)
+                    {
+                        navigator.activeView.active = false;
+                        navigator.persistCurrentView();
+                    }
+                    
+                    persistenceManager.flush();
+                }
             }
         }
         

                navigatorProperties = newNavigatorProperties;
                
                // TODO (chiedozi): Do i need to null out the properties on navigator?  Applicaiton does.
                navigator.removeEventListener(Event.COMPLETE, persistViewData);
                navigator.removeEventListener(ViewNavigatorEvent.VIEW_ADD, navigator_viewAddHandler);
            }
        }

                navigatorProperties = newNavigatorProperties;
                
                // Add event listeners
//                navigator.addEventListener(Event.COMPLETE, persistViewData);
                navigator.addEventListener(ViewNavigatorEvent.VIEW_ADD, navigator_viewAddHandler);
            }
        }
