Aggiornamento aprile 2013: non farlo. Non è stata una buona idea nel 2009 quando ho risposto per la prima volta alla domanda e in realtà non è una buona idea ora. Vedi questa risposta da hackbod per motivi:
Evita di ricaricare l'attività con asynctask sul cambio di orientamento in Android
Aggiungi android:configChanges="keyboardHidden|orientation"
al tuo AndroidManifest.xml. Questo dice al sistema quali modifiche alla configurazione dovrai gestire, in questo caso senza fare nulla.
<activity android:name="MainActivity"
android:screenOrientation="portrait"
android:configChanges="keyboardHidden|orientation">
Vedi Config di riferimento per gli sviluppatoriCambia per maggiori dettagli.
Tuttavia, l'applicazione può essere interrotta in qualsiasi momento, ad esempio tramite una telefonata, quindi è necessario aggiungere un codice per salvare lo stato dell'applicazione quando viene messa in pausa.
Aggiornamento: a partire da Android 3.2, devi anche aggiungere "screenSize":
<activity
android:name="MainActivity"
android:screenOrientation="portrait"
android:configChanges="keyboardHidden|orientation|screenSize">
Dalla guida per sviluppatori Gestione della configurazione Modifica te stesso
Attenzione: a partire da Android 3.2 (livello API 13), la "dimensione dello schermo" cambia anche quando il dispositivo passa dall'orientamento verticale a quello orizzontale. Pertanto, se si desidera impedire il riavvio del runtime a causa della modifica dell'orientamento durante lo sviluppo per livello API 13 o superiore (come dichiarato dagli attributi minSdkVersion e targetSdkVersion), è necessario includere il valore "screenSize" oltre al valore "orientamento". Cioè, devi dichiarare
android:configChanges="orientation|screenSize"
. Tuttavia, se l'applicazione ha come target API livello 12 o inferiore, la tua attività gestisce sempre questa modifica della configurazione stessa (questa modifica della configurazione non riavvia l'attività, anche quando è in esecuzione su un dispositivo Android 3.2 o versione successiva).