Here are the scenarios.
Scenario #1: My android app goes into the background because a user hit the "home" button. The user then immediately comes back to the application and the app picks up at the last activity and retains it's history stack and /onResume is called. Cool. All very expected behavior.
Scenario #2: My android app goes into the background because a user hit the "home" button. The user waits a considerable about of time before coming back to the app. A new instance of the app the "Application" class /onCreate is called and the app goes back to the last activity that was on the screen and retains the history stack. This is exactly like Scenario #1 except the Application.onCreate has been called.
While Scenario #2 is true, it's unexpected behavior to me. If a new instance of the app is launched because the OS wanted to reclaim memory, I would expect my "MAIN" launcher to be called, NOT the last activity and I would also not expect a history stack.
Question: I want the behavior in Scenario #1, but in Scenario #2 when a new instance of the app is created how can I make it launch a new/fresh version of the app?
Thanks guys for all the help.