You should rebuild the UI every time, that's the obvious unfortunately. Apart from the stateManager, I tend to use flags informing my app to which exact activity the 'pause' happened and return there, forcing it to rebuild the UI based on saved variables received. You are using listBoxes, that's fine, as long as you save their data to a temporary area, be it a map, or even a temporary sql table.