Passando extras e rotação de tela

Esse tipo de pergunta aparece periodicamente. Desculpe se isso foi coberto antes, mas eu sou um novato e não consegui encontrar a resposta apropriada. Ele lida com a implementação correta da comunicação entre classes e atividades.

Eu fiz um aplicativo de galeria. Tem 3 atividades principais: oMain um, para procurar nomes de arquivos usando um padrão; umaThumb um, que mostra todas as imagens que combinam com o padrão como miniaturas em um gridview, e umPhoto atividade, que abre uma imagem de tamanho completo quando você clica em um polegar emThumbs. Eu passo para oPhoto atividade através de umIntent os nomes de arquivos (uma matriz) eposition (aint) do polegar clicado na grade.

Este terceiroPhoto atividade tem apenas uma visão:TouchImageView, que adaptei para troca / zoom anterior / seguinte de acordo com o local onde você clicou na imagem (esquerda, direita ou meio). Além disso, eu adicionei um ouvinte longclick paraPhoto para mostrar informações EXIF.

A coisa está funcionando, mas não estou feliz com a implementação ... Algumas coisas não estão certas.

Um dos problemas que estou enfrentando é que, se eu clicar na direita da imagem para ver o próximo noPhoto atividade, ele muda bemposition++), mas ao girar o dispositivo, o originalposition aparece.

O que está acontecendo é quePhoto é destruído ao girar a imagem e, por algum motivo, é reiniciado novamente, sem obedecersuper.onCreate(savedInstanceState), carregando novamente os extras (oposition só mudou emPhoto, não nas atividades dos pais).

Eu tentei comstartActivityForResult ao invés destartActivity, mas falhou...

Claro que eu posso fazer algo inventado para salvar oposition dados, mas deve haver algo "conceitual" que eu não esteja entendendo sobre como as atividades funcionam, e quero fazer isso direito.

Alguém por favor pode me explicar o que estou fazendo de errado, qual é o melhor método para implementar o que eu quero e por quê?

Muito obrigado!!!

questionAnswers(1)

yourAnswerToTheQuestion