Android的5大组件

时间:2021-01-15 16:47:09

1、 Activity组件

  Activity组件通常的表现形式是一个单独的界面(screen)。每个Activity都是一个单独的类,它扩展实现了Activity基础类。这个类显示为一个由Views组成的用户界面,并响应事件。

  打开一个新界面后,前一个界面就被暂停,并放入历史栈中(界面切换历史栈)。使用者可以回溯前面已经打开的存放在历史栈中的界面,也可以从历史栈中删除没有价值的界面。Android在历史栈中保留程序运行产生的所有界面,从第一个界面到最后一个。

2、 Intent组件

  Android通过一个组专门的Intent类来进行界面切换。Intent描述程序向做什么。Intent类还有一个相关类IntentFilter。Intent用于请求要做什么事情,IntentFilter则描述了一个Activity(或下文的IntentReceiver)能处理什么意图。

  优势:(1)Activities仅发出一个Intent请求,便能重用其他组件的功能。

       (2)Activities可以随时被替换为有等价IntentFilter的新Activity

3、 Service组件

  Service是一个没有UI且长驻系统的代码,最常见的例子是媒体播放器播放歌曲。

  (1) 如何使用服务

  在Android系统中有如下两种使用服务的方法:

  1 通过调用Context.startService()启动服务,调用Context.stopService()结束服务。

  2 通过调用Context.bindService()启动服务,调用Context.unbindService()结束服务,还可以通过ServiceConnection访问Service。

  上述两种可以混合使用,例如可以先调用startService()再调用unbindService().

  (2) Service的生命周期

  在startService()后,即使调用startService()的进程结束了,Service还仍然存在,一直到有进程调用stopService()或者Service自己灭亡(stopSelf())为止。

  在bindService()后,Service就和调用bindService()的进程同生共死。

  当混合使用上述两种方法时,那么只有它们分别被stopService()和unbindService()了,这个service才会结束。

  (3) 进程生命周期

  Android系统将会尝试保留那些启动了或者绑定了的服务进程,具体说明如下:

   1 如果该服务正在进程的onCreate() onStart() 或者onDestroy()这些方法中执行时,那么主进程将会成为一个前台进程,以确保此代码不会被停止。

   2 如果服务已经开始,那么它的主进程的重要性会低于所有的可见进程,但是会高于不可见进程,由于只有少数几个进程是用户可见的,所以只要不是内存特别低,该服务不会被停止。

   3 如果有多个客户端绑定了服务,只要客户端中的一个对于用户是可见的,就可以认为该服务可见。

4 Broadcast/Receiver组件

5 ContentProvider组件