Android学习——四大核心组件(核心知识点整理)

        Android 开发的四大组件分别是:活动(activity),用于表现功能;服务(service),后台运行服务,不提供界面呈现;广播接受者(Broadcast Receive),勇于接收广播;内容提供者(Content Provider),支持多个应用中存储和读取数据,相当于数据库。

Activity

1.定义:Activity组件,在应用中的一个Activity可以用来表示一个界面,意思可以理解为“活动”,即一个活动开始,代表Activity组件启动,活动结束,代表一个Activity的生命周期结束。一个Android应用必须通过Activity来运行和启动,Activity的生命周期交给系统统一管理。

2.三个基本状态

  • Resumed    一个新Activity启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态。
  • Paused    当Activity被另一个透明或者Dialog样式的Activity覆盖时的状态。此时它依旧与窗口管理器保持连接,系统继续维护其内部状态,所以它依然可见,但它己经失去了焦点故不可与用户交互。
  • Stopped    当Activity被另一个Activity覆盖、失去焦点并不可见时处于Stopped状态

3.七大方法

  • onCreate()  Activity创建时第一个调用的方法,通常我们在该方法中加载布局文件,初始化UI组件,事件注册等等
  • onStart()  在onCreate方法之后调用,用于显示界面,但当前用户不能进行交互
  • onResume()  在onStart方法后调用,该方法执行完成后,用户可进行交互,当前Activity进入Resumed状态(运行状态);当一个Paused状态的activity被重新返回时,会再次调用该方法,让Activity进入运行状态
  • onRestat()  当一个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 

4.生命周期

Android学习——四大核心组件(核心知识点整理)_第1张图片

5.Activity之间通过Intent进行通信;直接通过Bundle对象来传递

Service

1.service(服务)是安卓中的四大组件之一,它通常用作在后台处理耗时的逻辑,,并且可以和其他组件进行交互。

2.生命周期

Android学习——四大核心组件(核心知识点整理)_第2张图片

3.启动方式:··startService(启动);··bindService(绑定服务)

4.startService()与bindService()区别:

  • startService只是启动Service,启动它的组件(如Activity)和Service并没有关联,只有当Service调用stopSelf或者其他组件调用stopService服务才会终止。
  • bindService方法启动Service,其他组件可以通过回调获取Service的代理对象和Service交互,而这两方也进行了绑定,当启动方销毁时,Service也会自动进行unBind操作,当发现所有绑定都进行了unBind时才会销毁Service。

5.IntentService

  • 内部有一个工作线程来完成耗时的操作,只需实现onHandleIntent方法即可
  • 完成工作后会自动终止服务
  • 如果同时执行多个任务时,会以工作队列的方式,一次执行
  • 通过该类来完成本APP中耗时的工作

Broadcast Receive

1.BroadcastReceiver也就是"广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的广播。在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能:当网络状态改变时系统会产生一条广播,接收到这条广播就能及时地做出提示和保存数据等操作;当电池电量改变时,系统会产生一条广播,接收到这条广播就能在电量低时告知用户及时保存进度,等等。

2.广播接收器的类型

  • Normal broadcasts:默认广播
  • Ordered broadcasts:有序广播
  • Sticky broadcasts:粘性广播

3.注册广播接收器的两种方式

  • 静态注册:静态注册是在AndroidManifest.xml配置文件中注册
  • 动态注册:需要在代码中动态指定广播地址并注册,通常我们是在Activity或Service注册一个广播。

4.区别:动态注册广播接收器特点是当用来注册的Activity关掉后,广播也就失效了。静态注册无需担忧广播接收器是否被关闭,只要设备是开启状态,广播接收器也是打开着的。也就是说哪怕app本身未启动,该app订阅的广播在触发时也会对它起作用。

ContentProvider

  •  android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。
  • 只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处是统一数据访问方式。
  • ContentProvider实现数据共享。ContentProvider用于保存和获取数据,并使其对所有应用程序可见。这是不同应用程序间共享数据的唯一方式,因为android没有提供所有应用共同访问的公共存储区。
  • 开发人员不会直接使用ContentProvider类的对象,大多数是通过ContentResolver对象实现对ContentProvider的操作。
  • ContentProvider使用URI来唯一标识其数据集,这里的URI以content://作为前缀,表示该数据由ContentProvider来管理。

总结

  • Activity:是整个应用程序的门面,主要负责应用程序当中数据的展示,是各种各样控件的容器,是用户和应用程序之间交互的接口
  • Service:在前台不可见,但是承担大部分数据处理工作,它和Activity的地位是并列的,区别在于Activity运行于前台,Service运行于后台,没有图形用户界面,通常他为其他的组件提供后台服务或监控其他组件的运行状态
  • BroadcastReceiver:实现消息的异步接收,他非常类似事件编程中的监听器,但他与普通事件监听器有所不同,普通的事件监听器监听的事件源是程序中的控件,而BroadcastReceiver监听的事件源是Android应用中其他的组件
  • ContentProvider:为不同的应用程序之间数据访问提供统一的访问接口,通常它与ContentResolver结合使用,一个是应用程序使用ContentProvider来暴露自己的数据,而另外一个是应用程序通过ContentResolver来访问数据

Android学习——四大核心组件(核心知识点整理)_第3张图片Android学习——四大核心组件(核心知识点整理)_第4张图片

你可能感兴趣的:(Android学习——四大核心组件(核心知识点整理))