在Android的四大组件中,除了ContentProvider组件之外,另外三个组件(Activity、Service、BroadcastReceiver)的启动都需要一个Intent对象来封装一个意图,指定待开启的组件。
如何使用Intent开启组件Service与BroadcastReceiver?方式基本上与Activity中一致,只是开启对应组件时,传递Intent对象的方法不同,这里对其做一下总结:
· Activity:一个Activity代表了一个应用程序的一个单一的显示屏幕,可以通过startActivity()方法传递一个Intent对象来启动一个新的Activity。如果还需要从新开启的Activity中返回数据,可以使用startActivityForResult()开启一个新的Activity,并重写onActivityResult()方法。该方法在新开启的Activity中存在返回数据时会被回调,并可在其中获取新开启的Activity返回的数据。
· Service:服务代表了一个后台的执行操作,它没有用户界面可以展示内容。如果需要开始一个服务做一段业务操作(如后台播放音频文件、后台下载文件),可以使用startService()方法传递一个Intent对象来指定开始的服务。如果要在服务的运行中与服务取得交互,可以使用bindService()方法传递一个Intent指定绑定的服务以及服务的连接。
· BroadcastReceiver:广播是一个系统全局的消息,任何应用程序如果有需求,都可以接收它。在应用中可以通过sendBroadcast()、sendOrderedBroadcast()或者sendStickyBroadcast()方法发送一段广播内容。
这里只是简单的介绍了Intent的用途,它可以干什么。而除了Activity已经讲解过,其它两个组件Service、BroadcastReceiver的使用,并不是本章的主要内容,关于这两个组件的使用,会在后面的章节中讲解到,本章的所有实例主要还是针对Activity来讲解Intent的使用,这部分的内容在另外两个组件也同样适用。