博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android finish()和onkeyDown奇怪的地方
阅读量:6656 次
发布时间:2019-06-25

本文共 576 字,大约阅读时间需要 1 分钟。

hot3.png

这两个疑问都是我在写onKeyDown事遇见的,想要实现连续按两次退出应用并stop service。

1、关于finish();

finish是Activity的类,仅仅针对Activity,当调用finish()时,只是将活动推向后台,并没有立即释放内存,活动的资源并没有被清理.此处还有一个对比:System.exit(0)时,杀死了整个进程,这时候活动所占的资源也会被释放。

正常再说,执行finish()时会调用activity的onDestroy(),这个毫无疑问。但是在“再按一次退出应用的程序”里边调用finish()时,却不执行onDestroy();

另外,当按下后退键后(针对一个activity的应用),会调用onDestroy();

这是奇怪之一,为什么finish()有时会调用onDestroy,有时却不会,

2、在onKeyDown中使用stopService(intent),虽然执行过这个语句,但是却不会调用到Service的onDestroy();

所以实际上还是会出现问题

在这个activity的别的地方使用stopService,就是可以执行Service的onDestroy

真不知道是为什么了,在这里记录一下

转载于:https://my.oschina.net/u/616446/blog/174862

你可能感兴趣的文章
dede数据库文件导入失败的可能原因是数据表前缀不同,这里的失败指的是mysql添加了数据,但后台不显示...
查看>>
bzoj3140: [Hnoi2013]消毒(二分图)
查看>>
VMware Workstation中安装linux系统(CentOS)超详细
查看>>
抓https包
查看>>
U-Boot在FL2440上移植(三)----支持NAND Flash
查看>>
防错笔记
查看>>
51nod1355 斐波那契的最小公倍数
查看>>
谷歌面试题求解.
查看>>
20135337——信息安全设计基础第八周学习笔记
查看>>
WordPress教程
查看>>
drf 多表
查看>>
损失函数
查看>>
对spring的理解是什么?
查看>>
Linux -- Ubuntu搭建java开发环境
查看>>
foreach和map
查看>>
angularjs封装bootstrap官网的时间插件datetimepicker
查看>>
java简单实现搜索指定后缀文件
查看>>
1738 - TWO NODES
查看>>
2019年华南理工校赛(春季赛)--I--炒股(简单思维水题)
查看>>
夜间模式的开启与关闭,父模板的制作
查看>>