Android中调用finish()后不能立即执行onDestroy()的BUG




(2013-12-02 15:55:58)
标签:

ondistory

it

分类: android应用技巧
在目前项目中(android2.0),发现一个严重BUG。当打开了A,B两个页面的时候,此时当前页面为B,如果在B中调用finish()后,虽然已经回到了A,但B却并没有执行onDestroy()方法,只有在手机上按动了某一个按键后,这时才会执行B.onDestroy()。B才会完全销毁。另:如果按手机自带的返回按钮,却不会出现这种情况。

因此,如果此时在onDestroy()方法有一些操作的话,那么在回到A不进行按键操作的话,B并没有及时销毁,所以不会做方法中的这些操作。

经过定位修改后发现,此BUG是由于在AndroidManifest.xml中对A页面设置了android:theme="@android:style/Theme.NoTitleBar"。而B页面并没有设置此参数造成的。把B增加此设置后,问题解决。

虽然问题已解决,但一直没有明白未设置android:theme="@android:style/Theme.NoTitleBar"的页面,为什么会在finish()后不能马上调用onDestroy()。按理说两者不应该有什么关联才是。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值