Como mencionado antes, um aplicativo Android pode não contar com acesso à memória virtual. Em um pequeno dispositivo, não há armazenamento secundário para o qual possa ser enviado um aplicativo executado, mas que esteja em segundo plano, quando quisermos liberar espaço para um novo aplicativo visível. Ainda assim, uma boa experiência de usuário requer que, quando o usuário retorne a um aplicativo que foi, por exemplo, suspenso, este tenha a mesma aparência de quando foi visto pela última vez. A responsabilidade pela preservação do estado, mesmo quando ocorrem suspensões, é do próprio aplicativo. Felizmente, o framework do Android faz com que isso não seja tão complicado.
O exemplo em “Serialização Java” mostrou o mecanismo geral do framework que permite a um aplicativo preservar seu estado mesmo quando ocorrem suspensões.
O framework fornece ainda mais uma ferramenta para preservação do estado do aplicativo. A classe View – base para tudo que é visível na tela – tem um método de callback onSaveInstanceState, chamado como parte do procedimento de remoção de um aplicativo da memória. Na verdade, ele é chamado a partir de Activity onSaveInstanceState, o que explica por que a implementação desse método por seu aplicativo (sobrescrita) deve sempre chamar super.onSaveInstanceState. Esse método permite a preservação do estado no nível mais específico possível, como por exemplo, em um aplicativo de e-mail onde se deseja preservar a localização exata do cursor dentro de uma mensagem de texto de e-mail não ainda enviada.