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

       项目中使用微博sdk返回时出现当前activity调用了finish()却无法立即执行onDestroy(),排查了好久仍找不到问题源头。百度了下竟然还真能通过这方法解决,做个笔记吧。Android笔记:调用finish()后不能立即执行onDestroy()的BUG

创新互联建站是一家专业提供东区企业网站建设,专注与成都网站制作、成都网站设计、H5页面制作、小程序制作等业务。10年已为东区众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

在目前项目中(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()。按理说两者不应该有什么关联才是。

参考:http://blog.sina.com.cn/s/blog_5da93c8f0101nrx5.html

文章题目:Android笔记:调用finish()后不能立即执行onDestroy()的BUG
本文地址:https://www.cdcxhl.com/article28/jgeocp.html

成都网站建设公司_创新互联,为您提供网站制作网站维护网站设计公司微信小程序企业网站制作App开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

绵阳服务器托管