今天热门
热点:

在什么情况下activity 不会调用onDestory,activityondestory


如题,求大神指导.。。。。。。。。。。。。。

解决方案

这个情况比较多,只能说说什么情况下会onDestory
1.一般你点击系统的返回键就会杀死当前的Activity,这个时候onDestory就被调用了。
2.要么就你主要的去调用finish()方法,activity也会ondestroy。
3.在极端的情况下,系统内存不足的情况也会根据优先级来杀死一些Activity,这个时候他们的ondestory()方法也会被调用。
4.利用intent跳转时加入一些启动标识,如CLEAN_TASK之类的也会导致一些acitivity被销毁,ondestory()触发

值得说明的是点击系统的home键回到桌面的时候,onDestory()是没有触发的。

一个activity的销毁是调用onDestroy(),如果想你的activity不被销毁,可以重写onDestroy(),再去掉这句代码super.onDestroy();

finish函数仅仅把当前Activity退出了,但是并没有释放他的资源。安卓系统回收机制自己决定何时从内存中释放应用程序。当系统没有可用内存到时候,会按照优先级,释放部分应用。所以建议一些业务逻辑最好不要写在onDestory()方法中,可以写到比如onPause()方法中。

比如弹出一个对话框但没覆盖原 Activity 的时候,跳转 Activity 但没执行 finish 的时候,手动按 home 回到主界面时候,内存充足不会杀掉后台Activity 的时候等等,建议楼主写个 Demo 亲自感受一下,就是在onDestory 中写个 Log.d 看下日志,到底什么时候 onDestory 被调用了,这样更加直观一点

www.zrccd.nettrue/topics/20180309/188639.htmlTechArticle在什么情况下activity 不会调用onDestory,activityondestory 如题,求大神指导.。。。。。。。。。。。。。 解决方案 这个情况比较多,只能说说什么情况下会onDestory 1.一般你点击系统的返回...

相关文章

    暂无相关文章

用户评论

大家都在看