işletim sistemi belli bir süre sonra arkadaki uygulamayı kapatır. Sen geri dönmeye çalıştığında o activity'de kullandığın değişkenler çoktan null değerini alıp memory ile bağları kesilmiştir.
Bu yüzden sıkıntı çıkıyor.
onCreate içerisinde savedInstanceState görmüşsündür işte orda activity statesini saklar android ilgili verileri ordan çekmen lazım.
http://stackoverflow.com/a/9846912 burda konu ile alakalı bir yorum var.
Ben genelde bir BaseActivity yazıyorum ve onun onCreatesinde savedInstanceState null mu diye bakıyorum eğer null değilse uygulamanın MainActivitysini new_task ve clear_top flagleri ile baştan açıyorum.
Bu sayede exceptionu önlüyorum