Pembaruan April 2013: Jangan lakukan ini. Itu bukan ide yang baik pada tahun 2009 ketika saya pertama kali menjawab pertanyaan dan itu sebenarnya bukan ide yang baik sekarang. Lihat jawaban ini oleh hackbod untuk alasan:
Hindari memuat ulang aktivitas dengan asynctask pada perubahan orientasi di android
Tambahkan android:configChanges="keyboardHidden|orientation"
ke AndroidManifest.xml Anda. Ini memberi tahu sistem perubahan konfigurasi apa yang akan Anda tangani sendiri - dalam hal ini dengan tidak melakukan apa pun.
<activity android:name="MainActivity"
android:screenOrientation="portrait"
android:configChanges="keyboardHidden|orientation">
Lihat Konfigurasi referensi pengembang untuk lebih jelasnya.
Namun, aplikasi Anda dapat diinterupsi kapan saja, misalnya dengan panggilan telepon, jadi Anda harus menambahkan kode untuk menyimpan status aplikasi Anda ketika dijeda.
Pembaruan: Pada Android 3.2, Anda juga perlu menambahkan "screenSize":
<activity
android:name="MainActivity"
android:screenOrientation="portrait"
android:configChanges="keyboardHidden|orientation|screenSize">
Dari panduan Pengembang Menangani Konfigurasi Ubah Diri Anda
Perhatian: Dimulai dengan Android 3.2 (API level 13), "ukuran layar" juga berubah ketika perangkat beralih antara orientasi potret dan lanskap. Dengan demikian, jika Anda ingin mencegah restart runtime karena perubahan orientasi ketika mengembangkan untuk API level 13 atau lebih tinggi (sebagaimana dideklarasikan oleh atribut minSdkVersion dan targetSdkVersion), Anda harus menyertakan nilai "screenSize" di samping nilai "orientasi". Artinya, Anda harus menyatakan
android:configChanges="orientation|screenSize"
. Namun, jika aplikasi Anda menargetkan API level 12 atau lebih rendah, maka aktivitas Anda selalu menangani perubahan konfigurasi itu sendiri (perubahan konfigurasi ini tidak memulai kembali aktivitas Anda, bahkan ketika berjalan pada perangkat Android 3.2 atau lebih tinggi).