Atualização de abril de 2013: não faça isso. Não foi uma boa ideia em 2009, quando eu respondi a pergunta, e realmente não é uma boa ideia agora. Veja esta resposta por hackbod por razões:
Evite recarregar atividades com o asynctask na mudança de orientação no android
Adicione android:configChanges="keyboardHidden|orientation"
ao seu AndroidManifest.xml. Isso informa ao sistema quais alterações de configuração você irá gerenciar - nesse caso, sem fazer nada.
<activity android:name="MainActivity"
android:screenOrientation="portrait"
android:configChanges="keyboardHidden|orientation">
Consulte Referência de desenvolvedor configChanges para obter mais detalhes.
No entanto, seu aplicativo pode ser interrompido a qualquer momento, por exemplo, por uma ligação telefônica, portanto, você deve adicionar um código para salvar o estado do seu aplicativo quando ele estiver em pausa.
Atualização: no Android 3.2, você também precisa adicionar "screenSize":
<activity
android:name="MainActivity"
android:screenOrientation="portrait"
android:configChanges="keyboardHidden|orientation|screenSize">
Do guia do desenvolvedor Manipulando a alteração de configuração você mesmo
Cuidado: a partir do Android 3.2 (API nível 13), o "tamanho da tela" também muda quando o dispositivo alterna entre a orientação retrato e paisagem. Portanto, se você deseja impedir a reinicialização do tempo de execução devido à alteração da orientação ao desenvolver para o nível 13 da API ou superior (conforme declarado pelos atributos minSdkVersion e targetSdkVersion), inclua o valor "screenSize", além do valor da "orientação". Ou seja, você deve declarar
android:configChanges="orientation|screenSize"
. No entanto, se o seu aplicativo atingir a API de nível 12 ou inferior, sua atividade sempre lida com essa alteração de configuração (ela não reinicia sua atividade, mesmo quando executada em um dispositivo Android 3.2 ou superior).