安卓四大组件(小白篇)

安卓的四大组件分别是:

       1,活动activity,用于表现服务; 

       2,服务service,后台运行服务,不提供界面呈现;

       3,广播接受者(broadcast receive),用于接受广播;

       4,内容提供者(content provider),支持在多个应用中存储和读取数据,相当于数据库

1,Activity

(1)定义:四大组件之一,用户操作的可视化界面,为用户提供了完成操作指令的窗口。我们创建完Activity,需要调用setContentView(R.布局文件)方法完成界面的显示,其中Activity的布局一般都在布局文件xml中进行配置;在安卓中主要能看见的几乎都是依托于Activity,其是开发中使用最频繁的组件。

(2)一个Activity通常就是一个单独的屏幕(窗口)

(3)安卓引用每一个Activity都必须在AndroidManifest.xml配置文件中声明,否则,系统不识别也不执行该Activity。

(4)Activity之间通过Intent进行通信

(5)Activity的生命周期

在安卓中有一个activity栈,当一个新的activity创建的时候,就会放在栈顶,这时候,这个activity就处于运行状态,再有一个新的activity被创建的时候,前一个就会被压入栈底,就跟上子弹一样。

a,运行中:在栈顶,可见,可以与用户交互

b,暂停:失去焦点,不能交互,依然可见。比如说一个非全屏的,或者透明的Activity放在栈顶,就会让前一个activity处于暂停状态,暂停时,这个activity的各种数据还保持着;只有在系统内存很低的情况下,系统才会自动销毁Activity。

c,停止:activity被另一个activity完全覆盖的时候,或者home键后,activity进入了后台,这时候就是停止状态,跟暂停相似。这时候activity中的数据还保持着。当系统别的地方要使用到内容时,系统会自动销毁Activity。

d,销毁:我们点击返回键,或者系统内存不足时,activity就会被系统回收,从栈里面销毁。

如下所示

2,Service

3,Broadcast Receive

在安卓中,广播是一种,广泛应用的在应用程序之间传输信息的机制。而广播接收器是对发送出来的广播进行过滤接受并响应的一类组件,可以使用广播接收器来让应用对一个外部事件做出响应,例如,电话呼入的时候,可以使用广播接收器进行处理,下载完成的时候,开机的时候,点击按钮的时候,都可以使用广播接收器进行处理,广播接收器既可以在AndroidManifest.xml(静态注册),也可以在代码中使用Context.registerReceive()注册。各种应用还可以通过使用Context.sendBroadcast()将他们自己的Intent广播给其他应用程序。

(1)你的应用可以使用广播对外部事件进行过滤,只对感兴趣外部事件进行接受并且作出响应。广播接收器没有用户界面,需要启动一个activity来响应接受到的消息,或者使用NotificationManager通知用户,通知可以有图标,震动,声音等。

(2)广播接受者的注册有静态注册与动态注册(代码中运行时注册,或者在AndroidManifest.xml中静态注册)

(3)动态注册广播特点是当用来注册的Activity关掉后,广播就失效了。静态注册无需担忧广播接收器是否被关闭,只要设备开的,接收器就是打开。也就是说APP没有启动,其订阅的广播在触发时,也会对他起作用。

 

 

4,内容提供者(Content Provider)

安卓的四大组件之一,主要用于不同的应用程序之间实现数据共享功能。

(1)安卓提供了Content Provider使一个应用程序的制定数据集能够提供给其他应用程序,其他应用程序可以通过ContentResolver类从该内容中获取或存入数据

(2)只有需要在多个应用程序中共享数据才需要内容提供者,比如说通讯录数据被其他应用程序使用,就应该存储在一个内容提供和中,好处是统一数据访问方式

(3)内容提供者实现了数据共享,起用于保存和获取数据,并且其对所有的应用程序可以见,这是不同应用程序见共享数据的唯一方式。因为安卓没有提供所有应用共同访问的公共存储区。

(4)开发人员不会直接使用ContenProvider类的对象,大多是通过ContentResolver对象实现对ContentProvider的操作

(ContentResolver是数据调用者,ContentProvider将数据发布出来,通过ContentResolver对象结合Uri进行调用,通过ContentResolver对象可以调用ContenProvider的CRUD)

(5)内容提供者使用URI来唯一标示其数据集,这里的URI以conten://作为前缀,表示该数据由内容提供者来管理

Uri代表数据操作的地址,每一个ContentProvider发布数据都会有一个唯一的地址。比如:content://(固定写法)+com.android.contacts(包名,可变)+/contacts(path路径)

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值