Обратите внимание, что приведенный выше ответ верен только в одном случае: если ваш процесс не будет уничтожен Android, потому что ресурсы (память, ...) необходимы по другой причине.
Чтобы получить то, что вы описываете, я написал бы пользовательское родительское действие и переопределил правильные методы жизненного цикла, чтобы сохранить состояние вашего приложения, прочитать его и действовать соответствующим образом. Затем пусть все ваши действия наследуются от MyActivity (вместо android.app.Activity)
public MyActivity extends android.app.Activity {
...
@Override
public onCreate(...) {
// Read the Application state,
// check if the currently launching Activity is the right one,
// if not, start the last Activity and finish the current one.
}
@Override
public onDestroy(...) {
// Store the current Activity ID in the SharedPreferences
}
...
}
Позаботьтесь о том, чтобы вызывать методы super.onDestroy и super.onCreate во всех ваших Activites (как вы должны делать в любом случае).
Приятного кодирования и веселья с Android!