你所没有想到的疑问:android开发中的变量生命周期
疑问一:android程序运行机制是怎样的?该看哪些书来了解?
疑问二:如题:比如我的一个布局文件中有两个button,然后在onCreate中声明了两个引用变量指向这两个button,并注册监听器响应用户动作。我所疑惑的是在方法里定义的变量不是随着方法的结束而销毁的吗?就像以上的两个指向button的变量,那onCreate后变量不存在了还如何来监听用户动作? 还有就是activity在经历了oncreate,onstart,onresume方法后是处于一种什么样的状态?我的猜测是就是处在一种监听用户动作的状态了,但就像上面提到的方法内定义变量的疑惑那样,我认为界面上的组件(如button)不是应该定义为activity的成员变量才能成立才好理解吗?
望赐教!
如下是一下朋友的回答,但还是没能解决我的疑惑,希望知道的朋友给个答复!
1.
2.
3
4有朋友这样回答我的:
第一个问题,你看activity生命周期就可以了,android的程序反映到用户的眼中就是一个个activity.
第二个问题,activity中的控件变量,比如button什么的,本来就应该作为成员变量定义,然后在oncreate方法中赋值.
这样在所有的回调方法中都能调用.
如果你在onCreate中定义局部变量,并且设置了点击监听,那么onCreate方法结束之后,这个局部变量确实是失效了,换句话说,"引用"已经没有了,但是这并不代表按钮不存在,只是你失去了调用这个按钮的方式而已.
activity在经历了oncreate,onstart,onresume方法后,可以理解为一种与用户交互的状态,
我问的大概就是这个意思,但是:
oncreate方法后button的引用变量失效,那么这时候的button上的监听器不是没用了吗?也就是说界面上在oncreate中声明的引用变量引用的组件无法响应用户的动作?但实际上它还可以响应用户动作的啊,就是这里我想不明白,最近看的android初学者的书里面的UI组件都是在oncreate里定义的引用,纠结。求解释。
还有第一个疑问我的意思是android从Dalvik开始如何加载类,初始化类等等到实例化类的机制该看那些书?是不是要看《android内核剖析》之类的?
在论坛上提问,帖子很快就沉到低了,只好在博客里请教大家!知道的或者有什么好的看法的给我说说,谢谢!