Android开发的四大组件分别是:
- 活动(activity),用于表现功能;
- 服务(service),后台运行服务,不提供界面呈现;
- 广播接受者(BroadcastReceive),勇于接收广播;
- 内容提供者(Content Provider),支持多个应用中存储和读取数据,相当于数据库
本文讲的是活动
(Activity)
Activity是Android的四大组件之一。是用户操作的可视化界面;它为用户提供了一个完成操作指令的窗口。当我们创建完毕Activity之后,需要调用setContentView()方法来完成界面的显示;以此来为用户提供交互的入口。在Android App 中只要能看见的几乎都要依托于Activity,所以Activity是在开发中使用最频繁的一种组件。
上面意思大致是
1,Activity用于显示用户界面,用户通过Activity交互完成相关操作
2, 一个App允许有多个Activity
- 一个Activity通常就是一个单独的屏幕(窗口)
- 两个Activity之间通过Intent进行通信
- 每一个Activity都必须要在AndroidManifest.xml配置文件中声明,android stdio会自动生成,
注意:所有组件都必须在配置文件中声明
- Activity的生命周期
一、接下来详细分析Activity的生命周期
从开始到销毁有七大方法
- onCreate() Activity创建时第一个调用的方法,通常我们在该方法中加载布局文件,初始化UI组件,事件注册等等
- onStart() 在onCreate方法之后调用,用于显示界面,但当前用户不能进行交互
- onResume() 在onStart方法后调用,该方法执行完成后,用户可进行交互,当前Activity进入Resumed状态(运行状态);当一个Paused状态的activity被重新返回时,会再次调用该方法,让Activity进入运行状态
- onRestart() 当一个Stopped状态的Activity被返回时,该方法被调用,之后再调用onResume()方法进入运行状态
- onPause() 当其他Activity(透明或窗口模式)进入时,该方法会被调用,让当前Activity进入Paused状态(暂停状态);当前Activity还可见但不可交互,如果其他更高优先级的app需要内存时,当前Activity可能会被销毁(kill);当前Activity被返回时会调用onResume()方法
- onStop() 当其他Activity完全覆盖该Activity时,该方法被调用,当前Activity进入Stopped状态(停止状态);当前Activity不可见,如果其他更高优先级的app需要内存时,当前Activity可能会被销毁(kill);当前Activity被返回时会调用onRestart()方法
- onDestroy() 当前Activity被销毁时调用,通常在该方法中用来释放资源,当前Activity killed
二、文字叙述的很详细了,刚开始可能看不明白,没关系,下面上图分析
- 新建一个项目-- 或者新建一个Activity
- 我们是要看看这些方法是何时触发的,就用打印的方式来测试,每个方法都写个打印事件
Log.e("TAG","要打印的内容");
三、接下来就要运行到模拟机或者是真机(手机)上
-
针对一个Activity
-
如果是模拟机 ,打开模拟机,会默认选中
推荐模拟机 雷电官网下载 -
如果是手机测试 ,需要打开开发者选项,usb调试 (每种机型打开开发者模式有的不一样,去百度一搜就有教程)
-
这里我用的是手机测试,连接usb后
-
点击运行,成功后我们看下面的Run控制台,会发现显示一个Activity
-
会走三个方法onCreate() , onStart() , onResume()
-
当直接退出,返回主界面,会走三个方法onPause() , onStop() , onDestroy()
-
onRestart() 平时对这个方法的调用时机比较少,比如在当前页面锁屏,又打开,会走这个方法,有兴趣可以自己试一下。
-
针对两个或多个Activity之间的跳转,方法的调用变化
-
新建一个页面
-
完成后,把打印事件写出来
-
接下来就是从Activity1 跳转到 Activity2 ,给Activity1 一个点击跳转事件
-
先是第一个Activity1页面 --> onPause()
-
第二个页面Activity2的 --> onCreate2() , onStart2() , onResume2()
-
再是第一个页面 --> onStop()
-
接下来就是从Activity2 返回到 Activity1
-
第二个Activity2页面 --> onPause2()
-
第一个页面Activity2的 --> onRestart() , onStart() , onResume()
注意:当没有销毁Activity时,再次显示,是不会走onCreate()
-
再是第二个页面 --> onStop2() ,onDestroy2()
-
以上是整个介绍,如果有不理解,欢迎留言讨论