Android的Activity, Intent 和 Service

  • Activity:是最基本的android应用程序组件。一个活动就是一个单独的UI,每一个活动继承自活动基类(extendsActivity)并被实现为一个独立的类。Activity类会显示由视图控件组成的用户接口,并对视图控件的事件做出响应。当一个新的UI打开时,前一个UI将会暂停,并保存在历史堆栈中,用户可以从历史堆栈中返回前一个UI。当UI不再使用时,我们可以从历史堆栈中删除它,默认情况下,Android会保留从主UI到每一个应用的运行UI。
  • Intent:Intent的调用是用来进行UI之间的切换的。Intent是描述应用想要做什么。Intent数据结构中两个最重要的部分是动作和动作对应的数据,典型的动作类型有:Main(活动的门户)、View、Pick、Edit等,而动作对应的数据是应URI的形式进行表示的,这里的URI就相当于这些动作的ID,一个动作对应一个动作数据.Intent类用用来描述一个应用将会做什么事情。与之有关系的一个类叫IntentFilter类,相对于intent是一个有效的做事情的请求,一个IntentFilter则用于描述一个Activity(或者IntentReceiver)能够操作那些intent。IntentFilter需要AndroidManifest.xml中定义.如AndroidManifest.xml中的:

<intent-filter>

<actionandroid:name="android.intent.action.MAIN"/>

<categoryandroid:name="android.intent.category.LAUNCHER"/>

</intent-filter>。

  • BroadCast Receivers:当希望应用能够对一个外部的事件(如当电话呼入时,电源不足,信号不好,或者到某个时刻时)做出响应,可以使用一个BroadCasterReceiver。BroadcastReceiver在AndroidManifest.xml中注册,但也可以在代码中使用Context.registerReceiver()进行注册。目前有2种主要类型的广播事件:1普通的广播(通过调用Context.sendBroadcast()来发送)。它是彻底地异步广播,通常情况下,所有的接收者都会收到这个广播。优点是高效,但缺点是“广播一旦发出,就不受控了,全部接收者都会在同一时间接收并处理它”。2有序的广播(通过调用Context.sendOrderedBroadcast()来发送)。与普通广播有所不同,有序广播在每一时刻永远保证只有一个接收者正在接收此广播(及A接收者->B接收者->C接收者。。。)这一次序通过调用serPripority(int)方法来实现。
  • Service:服务,具有一段较长生命周期且没有用户界面的程序。Service在后台运行,不可交互,不能自己运行,需要通过Activity或者其他Context对象来调用,有Context.startService()和Context.bindService()两种方式启动.Service的生命周期:onCreate、onStart、onDestroy

1.通过startService启动Service,会经历onCreate->onStart过程,Service停止时直接进入onDestroy,如果调用者直接退出而没有调用stopService,Service会一直后台运行。

2. 通过bindService,Service只会运行onCreate,这时将调用者和该Service绑定在一起,如果调用者退出,则Service就会调用onUnbind->onDestroyed,所谓绑定,就是共存亡。

  • ContentProvider:内容提供器,android应用程序能够将它们的数据保存到文件、SQLite数据库中,甚至是任何有效的设备中。当你想将你的应用数据和其他应用共享时,内容提供器就可以发挥作用了。ContentProvider正是用来解决在不同的应用包之间共享数据的工具。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值