A figura a seguir (do documento oficial ) descreve o conhecido ciclo de vida de uma atividade Android:

Por outro lado, quando a atividade é destruída pelo sistema (por exemplo, porque a memória precisa ser recuperada), o estado da atividade às vezes é automaticamente salvo e restaurado por meio dos métodos onSaveInstanceState()e onRestoreInstanceState(), conforme ilustrado pela figura a seguir (também do documento oficial ):

Estou ciente de que onSaveInstanceState()é nem sempre chamado quando uma atividade está prestes a ser destruído. Por exemplo, se for destruído porque o usuário pressionou o botão "voltar", o estado de atividade não é preservado. Mas nos casos em que o estado é salvo e restaurado e onSaveInstanceState()/ onRestoreInstanceState()é chamado, quando exatamente eles são chamados ?
Por exemplo, de acordo com as figuras acima, onRestoreInstanceState()pode ser chamado antes onStart()ou depois, onStart()mas antes onResume()ou depois onResume(). Da mesma forma, existem várias possibilidades para onSaveInstanceState(). Então, quando eles são chamados exatamente?
Idealmente, o que eu gostaria é ver um diagrama combinado mostrando os estados do ciclo de vida da atividade e os métodos de salvar / restaurar , se houver.