Android的Activity, Intent 和 Service

  • Activity:是最基本的android应用程序组件。一个活动就是一个单独的UI,每一个活动继承自活动基类(extends Activity)并被实现为一个独立的类。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中的:

                   

                   


  • 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,所谓绑定,就是共存亡。
  • Content Provider:内容提供器,android应用程序能够将它们的数据保存到文件、SQLite数据库中,甚至是任何有效的设备中。当你想将你的应用数据和其他应用共享时,内容提供器就可以发挥作用了。ContentProvider 正是用来解决在不同的应用包之间共享数据的工具。

你可能感兴趣的:(Coding,Android)