Android菜鸟笔记2-Activity生命周期与Log

一:Acticity

ActivityAndroid程序的4大组件之一。

ActivityAndroid程序的表示层。程序的每一个显示屏幕就是一个Activity

学过WEB开发的同学,可以把Activity理解成网页中的一个JSP文件;或者你可以把它理解成一个Windows的窗口。

ActivityAndroid程序的显示层,每一个显示窗口都是一个Activity;可是Activity本身无法显示在屏幕上,我们可以把它理解成是一个抽象层,一个壳子;就譬如一个JSP页面,它本身并没有显示出来任何东西,负责显示的是他生成的HTML标签。那么Android里谁才是真正显示出来的部分?--是ViewViewGroup,而ViewGroup其实也是View的子类。

有了上述的概念,我们现在可以讲明白一个Activity中的显示元素是如何显示出来的了。首先UI组件是按层次结构来由外到内的方式逐步展示的。要将一个屏幕元素层次树绑定在一个屏幕上显示,Activity会调用它的setContentView()方法并且传入这个层次树的根节点引用。当Activity被激活并且获得焦点时,系统会通知activity并且请求根节点去计算并绘制树,根节点就会请求它的子节点去绘制它们自己。每个树上的ViewGroup节点会负责绘制它的子节点。ViewGroup会计算它的有效空间,布局所有的子显示对象,并最终调用所有的子显示对象的Draw()方法来绘制显示对象。各个子显示对象可以向父对象请求它们在布局中的大小和位置,但最终决定各个子显示对象的大小和位置的是父对象。

Android程序借助ViewViewGroup对象来构建用户界面。Android提供了比HTML多得多的,现成的用户界面组件,譬如现在网站上常见的五角星评分效果组件RatingBar.


:Activity生命周期

手机最重要也是最基础的功能是打电话,也就意味着电话来的时候可能随时要把现在的程序暂停,如果电量不足的时候也可能随时要把现有程序关闭;因此Android程序和电脑上的程序有所不同,具体到ActivityActivity的生命周期不是自身控制的,而是由Android系统控制的。

androidActivity有四种基本状态:


1Running

位于屏幕最前端时,此时处于可见状态,和用户可交互的状态。

2Paused

Acitivy被另一个透明的或者非全屏的Activity覆盖时的状态叫Paused状态,虽然可见但不可交互。

3Stop

Activity被另外一个Activity覆盖、界面不可见时处于Stop状态。

4Killed

Activity被系统杀死或者跟本没启动时就是Killed状态。


三:日志

android提供了自己的log输出api-->位于android.util.Log这个类中.

这个类比较常用的打印日志的方法有5,5个方法都会把日志打印到LogCat:

Log.v(tag,message); //verbose模式,打印最详细的日志

Log.d(tag,message); //debug级别的日志

Log.i(tag,message); //info级别的日志

Log.w(tag,message); //warn级别的日志

Log.e(tag,message); //error级别的日志

其中tagmessage分别是两个String.

ag用来标记log消息的源头的.message则是这条log的内容.

我把Activity的各个方法改一下,给每个方法中加上了Log.d来记录日志输出,结果如下图.



Run工程,查看LogCat输出



旋转app的屏幕,查看日志



我们可以看到屏幕翻转时,Android系统把ActivityLife这个Activity先杀死(具体顺序是先暂停、后关闭再销毁),然后再启动(具体顺序是先创建,后启动再恢复)。通过这个例子我们也清楚的看到了,是Android系统而不是程序员在控制Activity的生命周期。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十五楼亮哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值