做Android开发也有一段事件了,在最近做的一个项目中,发现了一个现象,就是Android退出程序的问题。
一直以为一个应用的Activiy结束之后,程序也就随之关闭,所有的操作也就应该停止了!但最近才发现,这样的理解是错误的!
通过程序测试我发现,虽然一个程序的主Activity退出了,但是程序的进程并不会被杀死,如果这时程序中有线程开始的话,线程还会一直在后台执行,不信可以自己测下。
另外,如果程序中声明了static类型的变量,退出程序时这个变量其实还在内存中,当下次再次进入程序,该变量的值会是你上次退出程序时的值,而不是你设的默认值。
在网上大概查了下资料,发现Android对应用的处理机制与windows是不同的。Android系统中会将程序常驻在内存中,这样以达到更快的响应速度。
所以在写任何一个Android应用的时候,都要注意这个问题,否则可能会给程序造成莫名奇妙的错误。
一定要在退出程序的方法中把后台的线程停止,static类型的变量重新设置为默认值。
这些都是自己的一些经验之谈,希望对大家有所帮助,如有错误,请纠正,大家共同进步!!
这里也有介绍比我的详细些http://blog.youkuaiyun.com/huzgd/article/details/7459774
本文探讨了Android应用在退出时,线程仍在后台执行及static类型变量内存残留的问题,解析了Android系统对应用的处理机制与Windows的不同之处,并提供了解决策略。
2650

被折叠的 条评论
为什么被折叠?



