Мое приложение включает в себя серию действий, с помощью которых пользователь должен действовать линейно. Допустим, эта серия действий выглядит следующим образом: A (представляет главное меню), B, C, D, E. Пользователь выполняет следующие действия: A -> B -> C -> D -> E. В каждом из В этих действиях пользователь должен либо ввести данные, либо разрешить устройству автоматически получать данные (например, через сеть или Bluetooth).
Иногда мое приложение вылетает в одном из промежуточных действий. Обычно происходит то, что приложение возвращает действие или два назад. Например, если мое приложение вылетает в Деятельности D, оно может вернуться к Деятельности C или B. Но проблема в том, что после такого сбоя входные данные находятся в таком странном состоянии, что приложение снова падает и показывает силу Закрыть диалоговое окно, вплоть до Главного меню «Задание A».
Как я могу поймать эти исключения, которые вызывают глобальные сбои во всем приложении, чтобы я мог очистить данные и изящно позволить пользователю вернуться в главное меню?