您所没有想到的疑问:android开发中的变量生命周期

你所没有想到的疑问:android开发中的变量生命周期
疑问一:android程序运行机制是怎样的?该看哪些书来了解?
疑问二:如题:比如我的一个布局文件中有两个button,然后在onCreate中声明了两个引用变量指向这两个button,并注册监听器响应用户动作。我所疑惑的是在方法里定义的变量不是随着方法的结束而销毁的吗?就像以上的两个指向button的变量,那onCreate后变量不存在了还如何来监听用户动作? 还有就是activity在经历了oncreate,onstart,onresume方法后是处于一种什么样的状态?我的猜测是就是处在一种监听用户动作的状态了,但就像上面提到的方法内定义变量的疑惑那样,我认为界面上的组件(如button)不是应该定义为activity的成员变量才能成立才好理解吗?

望赐教!


如下是一下朋友的回答,但还是没能解决我的疑惑,希望知道的朋友给个答复!

1.

引用 1 楼 的回复:

楼主太纠结了,清空观点再去看Android的Activity生命周期


兄弟!这不是纠结,这是疑问啊,不明不白地被一些例程牵着鼻子走的感觉不好受!所以凡事都应该探个究竟!你说的activity的生命周期我大概都了解是怎么的来龙去脉,但就是不理解android程序里面的运行机制,如果你知道有介绍这方面的书籍,望推介啊。谢谢!


2.

引用 5 楼 的回复:

activity在经历了oncreate,onstart,onresume方法后是处于一种什么样的状态? 说白了就是 界面和用户可以直接打交到了, 我也为此问题纠结了一段时间,后来写了程序实验了一下,作了个总结,
http://blog.csdn.net/huazai963184709/article/details/7864331 关于Activity 生命周期的,应该是可以看懂了,有举……


额,你博客上的知识我已经知道了,这里的重点是关于变量的生命周期及android的运行机制啊,兄弟!


3

引用 8 楼 的回复:

onCreate()方法,变量?其实你可以联想一下main方法。。。


main()的话,程序执行完就结束啦,而这里的oncreate方法执行完之后activity还是处于等待中的,性质不一样的吧。


4有朋友这样回答我的:

第一个问题,你看activity生命周期就可以了,android的程序反映到用户的眼中就是一个个activity.
第二个问题,activity中的控件变量,比如button什么的,本来就应该作为成员变量定义,然后在oncreate方法中赋值.
这样在所有的回调方法中都能调用.
如果你在onCreate中定义局部变量,并且设置了点击监听,那么onCreate方法结束之后,这个局部变量确实是失效了,换句话说,"引用"已经没有了,但是这并不代表按钮不存在,只是你失去了调用这个按钮的方式而已.
activity在经历了oncreate,onstart,onresume方法后,可以理解为一种与用户交互的状态,

我问的大概就是这个意思,但是:

oncreate方法后button的引用变量失效,那么这时候的button上的监听器不是没用了吗?也就是说界面上在oncreate中声明的引用变量引用的组件无法响应用户的动作?但实际上它还可以响应用户动作的啊,就是这里我想不明白,最近看的android初学者的书里面的UI组件都是在oncreate里定义的引用,纠结。求解释。
  还有第一个疑问我的意思是android从Dalvik开始如何加载类,初始化类等等到实例化类的机制该看那些书?是不是要看《android内核剖析》之类的?


在论坛上提问,帖子很快就沉到低了,只好在博客里请教大家!知道的或者有什么好的看法的给我说说,谢谢!

2楼dong3560昨天 18:52
私以为看源码应该会有答案,我先去看看Activity.java,有结果的话再来跟贴
Re: stewen_001昨天 18:53
回复dong3560n好的!我还没想到看源码呢,不知道有没有相关的知识,之前只是把dev guide 里面的东西翻了一遍还是没有结果 O.O
1楼helloandroid_昨天 16:41
这····同问。
Re: stewen_001昨天 18:00
回复helloandroid_n哈,同道中人,嘿嘿