1、Activity
在Android中所有用户看得到的页面,都是Activity。Activity是Android中四大组件之一,绝大多数APP都需要与用户进行交互,而Activity就是与用户交互的地方。
在Android中的设计中逻辑与视图是分离的,Activity是用来处理逻辑的,每个Activity都有一个与之关联的布局文件,用作显示。

在上面的代码中我们可以看到,我们的Activity继承自AppCompatActivity,AppCompatActivity类是来自android.support.v7.app这个包的。

2、Activity的生命周期
了解了Activity的生命周期我们才能知道系统会在何时调用Activity中的具体哪个方法。Activity的生命周期如下图所示:

我们可以看到当一个Activity被加载的时候,最先执行的就是onCreate()方法,刚刚我们创建的一个空白Activity中被要求复写的就是这个函数,请注意onCreate()方法中的setContentView(),因为如果没有这个函数我们的视图是不会被渲染出来的。

注意第一个重载方法,它的传入参数就是一个布局资源的ID,这就是为什么我们的布局文件能在用户手机上显示出来的原因了。
在onCreate()方法执行完毕后,就进入了onStart()、onResume(),之后Activity就进入了运行状态。这时如果其他的Activity进入了前台,遮挡住刚才的Activity,上一个Activity并没有消失,而是进入了暂停状态,这时系统会调用onPause()方法,需要注意的是,这个方法执行时,这个Activity处于等待回复的状态,所以不要再其中执行耗时的逻辑处理。
当Activity处于不可见的状况时,系统会调用onStop()方法,然后等待虚拟机垃圾回收,被销毁时执行onDestory()方法。
当一个Activity处于停止状态时,用户重新导航回到了这个Activity,系统会调用onRestart()方法。
3、实例化控件
在一个Activity中不可能只是用来展示布局中的控件,这些控件必然是可以操作的,比如按钮Button、下拉菜单Spinner等等控件都是可以进行操作的。这时我们就需要在Activity中实例化我们布局中的控件。
在Activity中可以通过findViewById()方法来实例化控件,传入参数是控件的id,返回值是一个View对象,在获得view对象后我们就可以根据各个不同的View对象调用其方法来实现控制控件的目的。



网友评论