項(xiàng)目中使用微博sdk返回時(shí)出現(xiàn)當(dāng)前activity調(diào)用了finish()卻無法立即執(zhí)行onDestroy(),排查了好久仍找不到問題源頭,
Android筆記:調(diào)用finish()后不能立即執(zhí)行onDestroy(
。百度了下竟然還真能通過這方法解決,做個(gè)筆記吧。j_0012.gif在目前項(xiàng)目中(android2.0),發(fā)現(xiàn)一個(gè)嚴(yán)重BUG。當(dāng)打開了A,B兩個(gè)頁面的時(shí)候,此時(shí)當(dāng)前頁面為B,如果在B中調(diào)用finish()后,雖然已經(jīng)回到了A,但B卻并沒有執(zhí)行onDestroy()方法,只有在手機(jī)上按動(dòng)了某一個(gè)按鍵后,這時(shí)才會(huì)執(zhí)行B.onDestroy(),
電腦資料
《Android筆記:調(diào)用finish()后不能立即執(zhí)行onDestroy(》(http://www.hsanran.com)。B才會(huì)完全銷毀。另:如果按手機(jī)自帶的返回按鈕,卻不會(huì)出現(xiàn)這種情況。因此,如果此時(shí)在onDestroy()方法有一些操作的話,那么在回到A不進(jìn)行按鍵操作的話,B并沒有及時(shí)銷毀,所以不會(huì)做方法中的這些操作。
經(jīng)過定位修改后發(fā)現(xiàn),此BUG是由于在AndroidManifest.xml中對(duì)A頁面設(shè)置了android:theme="@android:style/Theme.NoTitleBar"。而B頁面并沒有設(shè)置此參數(shù)造成的。把B增加此設(shè)置后,問題解決。
雖然問題已解決,但一直沒有明白未設(shè)置android:theme="@android:style/Theme.NoTitleBar"的頁面,為什么會(huì)在finish()后不能馬上調(diào)用onDestroy()。按理說兩者不應(yīng)該有什么關(guān)聯(lián)才是。