哈喽,艾瑞巴蒂,小编又在一个新的周二和大家见面了,古代有四大发明术:造纸术、指南针、火药、活字印刷术,亚洲有四大邪术:泰国变性术、韩国整容术、日本化妆术、中国PS术,那Android 的四大组件有多少同学知道呢?和小编一起探索下吧~
什么是Activity?
Activity是Android一个非常重要的用户接口(四大组件之一),是可见的,主要是用户和应用程序之间进行交互的接口。在每个Activity中都可以放很多控件,所以也可以把Activity看作控件的容器。
什么是生命周期?
onCreate:主要执行初始化工作,比如用setContentView加载布局界面
onStart:Activity由不可见变为可见,但是不在前台,不可以与用户进行交互
onResume:使Activity位于返回栈的顶端,并出现在前台,可与用户进行交互
onRestart:Activity的重启,由不可见变为可见
onPause:表明Activity正在停止,正常情况下onStop会紧接着调用。但是也有特殊情况,若这个时候需要快速的挥刀当前Activity,那么onResume也会被调用。这个方法的执行一定要快,不然会影响栈顶的Activity的使用。
onStop:Activity由部分不可见变为完全不可见,可做一些重量级的回收工作,同样不能很耗时。
onDestory:销毁Activity并释放资源。
其中onCreate和onDestory为完整的生命周期,onStart和onStop为可见生命周期,onResume和onPause为前台生命周期。
ADB查看运行的Activity生命周期
打开APP点击访问新闻详情页面
Ps:通过运行adb命令可以清晰的看到一个APP在运行过程中Activity的生命周期,以”今日热点头条”APP为例,通过上图我们可以看到,首先Runing Activites是.MainActivity,当我点击Item后跳转页面时,分别运行新的Activity:mResumedActivity:.mainUI.WebActivity,暂停上一个Activity,mLastPause:.MainActivity。
踩过的坑?
-
问题现象:
当两个Activity重叠显示,测试时发现在上层Activity进行滑动操作时,下层的Activity却响应了这个事件。
-
分析原因:
第一个Activity执行onCreate()->onStart()->onResume后,当第二个Activity弹出后第一个Activity执行了onPause()方法,未执行onStop()方法,所以在上层Activity执行滑动操作时,下层的Activity会响应。
小编互动环节:
各位Tester在工作中是不是也遇到过类似情况,欢迎留言讨论昂~