续。前几天是18周岁生日,偷懒了一阵子。今天继续填坑。
今天准备讲几个刚入门就会碰到但是概念又很深奥难懂的几个名词。
1、Activity。这单词我也知道啊是活动的意思,但是它在Android里面起到哪些作用呢?为什么会用Java语言来书写呢?Activity的生命周期有哪些用途呢?我们一一理解。
首先,Activity在Android中的作用就是呈现一个屏幕给用户。通常情况下MainActivity呈现的是我们应用的主页。比如说,我们在主页上面放置一个按钮,点击按钮之后让应用跳转到指定的页面。这里就有两个Activity,一个是主页的MainActivity,另一个是跳转到的目标Activity。粗浅地理解的话,Activity相当于一个模块,多个Activity组合起来形成了一个具有完整功能的APP。从代码来分析,Activity的onCreate方法中必须要有一行:setContentView(R.layout.xxx); 这行代码就是把这个Activity连接到我们做好的一个layout里面,从而展示这个layout。我们日常使用APP中碰到的多数页面跳转的场景,就是Activity之间的跳转。
那么,为什么Activity会放在src/java目录下呢?我们学习的Java基础就是用来在Activity里面完善Activity的各种功能。其中涉及到Activity的继承、控件的继承......继承这个词是Java这一面向对象的编程语言的一大特征,Android的各种功能,都是基于Java来运行的。有Java基础的同学应该都知道Java可以定义很多个“类”,类可以被继承。从源代码来看,Activity继承自Contex(这也是个很重要的点,以后要解释的),Context的父类是Object,Object是Java所有类的祖先。所以可以看到Activity本质上就是Java的一个类。所以用Java来书写。
(拓展一下下)那么,src/java目录下全部都是Activity么?当然不是。类是可以创造的,我们可以写一个类,把不同Activity需要用到的功能函数写在这个类里面,再到Activity里面去调用这些函数,这样就减少了相同代码的重复书写。我们也可以public一个自定义控件,在自定义控件里面自由发挥,这样才能实现种种复杂的UI界面。
那么,Activity的生命周期如何理解呢?生命周期的图表示起来很复杂,但是实际用到就很好理解了。还是一开始的例子,从MainActivity跳转到指定的Activity后,MainActivity暂时没有什么卵用了,如果再把它作为活动Activity的话,就白白占用系统资源了,所以会执行onStop(),或者也可以根据场景选用onPause()。你可能觉得反正现在硬件这么厉害,这样应该没什么吧。这显然是不可能的,如果不把东西搬到后台,开几个程序系统就吃不消了,所以系统有一个完整的管理机制,就是生命周期。严谨管理Activity的生命周期,其实有利于开发者对项目的层级的理解,这样出事情也知道应该往哪个方向去找Bug。
在产品级的开发过程中,Activity要比我们上面说的复杂得多。在初学的时候,按照这样说的去理解Activity,可以更好的理解Android这一套庞大的体系。希望对同学们有所帮助。
2017-8-6
网友评论