Android面试之四大组件简答

Android四大组件简答

在面试的时候,有一些面试官会更倾向要你回答一下比较基础的知识,这个时候Android的四大组件会成为他们的一个简答题。
下面我们来简单认识一下四大组件。Activity是用户可视的交互组件,也是我们用得最多的一个组件,负责向用户展示从网络获取、本地储存处理后的信息;Content Provider是获取其他应用的信息;Service是不可视的交互组件,我们会用来应用后台更新程序来使用;还有就是BroadCastReceive进行广播来进行发送与接收信息。各自负责自己的工作,然后怎么将他们协调在一起呢?那就是引出使用非常广的Intent类,组件与组件之间的通信、传递信息、交互数据。好的,我们跟着来看看我们应该怎么去描述给我们的面试官。
  • Activity

    1. 用户进行交互的可视化操作组件,可以简单理解成一个Activity就一个窗口。
    2. Activity之间通过Intent来进行通信。
    3. Android的应用在创建一个Activity的时候都需要在AndroidManifest.xml配置文件中配置。
  • Service

    1. Service用于在Android手机后台完成用户的操作,Service分为两种:
      (a)started(启动):当应用程序组件(如Activity)调用startService()方法启动服务时,服务处于started状态。
      (b)bound(绑定):当应用程序组件调用bindService()方法绑定到服务时,服务处于bound状态。
    2. startService()与bindService()的区别:
      (a)启动服务是由其他组件调用startService()方法启动的,这样服务的onStartService()方法被调用,当服务是started状态时,其生命周期与启动它的组件无关,并且可以在后台无限期运行,即使启动服务的组件已经被销毁。因此服务需要在完成任务后调用stopSelf()方法停止,或者由其他组件调用stopService()方法停止。
      (b)使用bindService()方法启动服务,调用者与服务绑定在了一起,Service与调用组件的生命周期协同。
    3. 使用Service时候同样需要我们在AndroidManifest.xml声明使用的service,使用的是标签。
    4. Service通常是后台运行的,不太需要进行用户交互的动作,所以被称之为没有图形用户界面。Service组件被某些动作触发然后在后台为我们服务或者监控我们的交互操作。
  • Content Provider

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

    1. 广播接收者是没有用户界面,它们可以启动一个Activity或Service来响应它们收到的信息,或者用NotificationManager来通知用户。
    2. 广播接收者的注册有两种方法,分别是程序动态注册和AndroidManifest.xml配置文件进行静态注册。
    3. 动态注册广播接收器的特点是当用来注册的Activity关掉后,广播也就失效了。静态注册无需担忧广播接收器是否被关掉,只要设备是开启装逼,广播接收器也是开着的。也就是说哪怕app本身未启动,该app订阅的广播在触发时也会对它起作用。

希望各位同学仔找到自己喜欢的工作环境,爱着自己的代码。

你可能感兴趣的:(Android)