Android'de orientation degistigi zaman isletim sisteminin default davranisi ekranda olan activity'yi sonlandirip orientation degisikligi tamamlandiginda tekrar acmak seklindedir. Bu durumda onCreate metodu tekrar cagirilacagi icin ImageView'a koymus oldugunuz resim verisini kaybedersiniz. Bu durumu handle etmek icin onSaveInstance metodunu override etmeniz gerekir. onSaveInstance(Bundle outstate) metodu bir sistem metodudur ve bir activity sonlandirilmadan hemen once cagirilir. Bu metodun icerisinde outState isimli bundle'a resim verisini extra olarak eklemeniz gerekir. Bu sayede orientation degisip activity'nin onCreate metodu tekrar cagirildiginda kaydettiginiz veri onCreate(Bundle savedInstanceState) metoduna gelen bundle'in icinde olacaktir.
onSaveInstance state metodunu override edip istediginiz verileri ekledikten sonra, onCreate metodunda soyle bir kontrol ile sorununuz cozulecektir:
if (savedInstanceState != null && savedInstanceState.hasExtra("IMAGE_DATA")) {
// Restore edilen resim verisini ImageView'a tekrar koy.
}
// Normal onCreate akisini devam ettir