资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

activity的view回收-创新互联

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

成都创新互联专业为企业提供南岸网站建设、南岸做网站、南岸网站设计、南岸网站制作等企业网站建设、网页设计与制作、南岸企业网站模板建站服务,十载南岸做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

activity  的view 回收

我觉得Activity创建好以后,其所对应的XML布局文件会在内存中建立好视图树对象层次结构(在内存的堆区);而在onCreate方法中使用 findViewById 方法,获得的是堆区中视图控件对象的指针。当onCreate方法结束后,只是销毁了onCreate方法内部定义的局部变量(栈区内存),并没有销毁堆区的内存,所以,视图控件仍然可以点击,并做出事件响应。(即activity对象堆区在oncreate()方法后就有成员变量view,该view的生命周期是跟随activity对象的不是随着oncreate()方法的)

oncreate中有个方法叫setContentView,每一个Activity都会加载一个视图,就是说有一个成员变量View,setContentView(View),就是给这个成员变量赋值,所以说oncreate里面定义的两个button虽说是局部变量,同时也是VIew这个成员变量的属性,Button btn = this.findViewById();这里用this来findView,说明button已经存在于activity中,btn这个局部变量是成员变量View通过Id找出来的,而不是new 出来的。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页名称:activity的view回收-创新互联
文章网址:http://cdkjz.cn/article/dedios.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220