疑问一: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内核剖析》之类的?
在论坛上提问,帖子很快就沉到低了,只好在博客里请教大家!知道的或者有什么好的看法的给我说说,谢谢!
分享到:
相关推荐
在Android应用开发中,了解和掌握Android生命周期是至关重要的,因为这直接影响到应用程序的性能、稳定性和用户体验。本文将深入探讨“Android生命周期Demo”,并基于《第一行代码》这本书中的讲解,帮助新手开发者...
总结来说,理解Android中静态变量的生命周期是优化应用性能、防止内存泄漏和确保数据持久性的关键。开发者应谨慎使用静态变量,特别是在处理跨Activity或跨进程通信时,以及在实现单例模式时。同时,要熟悉Android的...
第五步:配置Android SDK环境变量与JDK类似,我们需要添加两个新的系统变量:ANDROID_HOME 和 PATH。ANDROID_HOME 指向Android SDK的安装路径,例如:C:\Users\YourUsername\AppData\Local\Android\Sdk。PATH变量中...
1. **创建变量**:点击“新建”按钮,在“变量名”字段中输入`ANDROID_SDK_HOME`,在“变量值”字段中输入你安装Android SDK的目录路径,例如`C:\Users\[YourUsername]\AppData\Local\Android\sdk`。 2. **配置Path...
在VB(Visual Basic)编程中,变量的生命周期是编程中非常关键的概念,它涉及到变量的创建、使用和销毁。变量的生命周期是指从变量被声明到它不再被使用并被系统回收的时间段。理解变量的生命周期有助于避免程序运行...
在Android应用开发中,Activity和Fragment是两个核心组件,它们共同构建了用户界面并管理着应用的状态。Activity作为应用程序中的单个屏幕,而Fragment则可以看作是Activity的一部分,可以在多个Activity之间重用。...
《移动开发宝典:Android Studio使用教程》是针对Android开发者精心编写的指南,旨在帮助读者深入理解和熟练掌握Android Studio这一强大的集成开发环境(IDE)。Android Studio是Google为Android应用开发提供的官方...
在Android应用开发中,了解Activity的生命周期至关重要,尤其是在屏幕旋转这样的设备状态变化时。当用户在使用设备时,比如从竖屏切换到横屏,或者反之,系统会自动调用Activity的相关方法,来管理和恢复应用的状态...
Java JDK 是 Android 应用程序开发的基础环境,配置 JDK 环境变量是开发 Android 应用程序的前提条件。下面是配置 JDK 环境变量的步骤: 1. 下载 JDK 并安装,安装完成后需要配置环境变量。 2. 右击计算机,选择...
### JDK与Android开发环境变量配置详解 在进行Android应用程序开发时,配置正确的环境变量是非常重要的一步,这将直接影响到开发工具能否正确识别并利用到已安装的Java Development Kit(JDK)以及Android SDK等...
Android生命周期是Android应用开发中的核心概念,它定义了Android组件(特别是Activity)在不同操作下所经历的状态变化。本文将通过一个Demo实例,帮助你深入理解Android生命周期,并着重讲解如何重写关键的七个方法...
在Android应用开发中,Activity是用户界面的基本组件,它负责展示屏幕上的交互内容。Activity的生命周期是Android开发者必须深入理解的重要概念,因为它直接影响到应用程序的行为和性能。本实例通过切换设备横竖屏来...
在Android应用开发中,MvRx(发音为"Mar-V-Rex")是一个强大的开源状态管理框架,由Airbnb公司开发并维护。它结合了Model-View-Repository(MVP)架构模式和React.js的启发,旨在简化复杂的UI状态管理,提高应用的可...
以下是一个关于Service生命周期的详细解析,结合代码示例来阐述如何在Android中操作Service。 1. **Service生命周期概述** Service的生命周期主要包含以下几个阶段:onCreate()、onStartCommand()、onBind()、...
Android系统是由Google主导开发的一个基于...5. 创建Android虚拟设备(AVD):在Android SDK和AVD Manager中创建虚拟设备,模拟不同类型的Android设备,以便于开发者在没有真实设备的情况下进行应用程序的测试和调试。
Android平台Qt开发入门教程 Android平台Qt开发入门教程是一份详细的指南,旨在帮助开发者快速掌握Android平台上的Qt应用程序开发。以下是对该教程的知识点总结: Qt for Android 简介 Qt for Android是Qt框架在...
在Android应用开发中,Activity是核心的组件之一,它代表了用户界面的单一屏幕视图。Activity生命周期的理解对于开发者来说至关重要,因为它是控制应用程序行为和响应用户交互的关键。本文将深入探讨Activity生命...
1. **Android SDK介绍**:Android SDK(软件开发工具包)是开发Android应用的基础,提供了编译、调试、模拟器等工具。SDK包括了Java Development Kit (JDK)、Android平台版本、Android Studio IDE、以及各种开发者...
在Android应用开发中,Activity是用户界面的基本单元,它的生命周期管理是开发者必须深入理解的关键概念。本文将详细探讨Android Activity的生命周期,以及如何通过源码分析和使用工具进行深入研究。 Activity的...
8. **生命周期管理**:理解Activity、Fragment的生命周期,以及如何在生命周期方法中正确处理业务逻辑,防止资源泄露和异常情况。 9. **异步编程**:Android开发中常见的异步处理方式包括AsyncTask、Handler/Looper...