Android 开发之应用程序基础及组件
2010-04-20 05:21:00 来源:WEB开发网1.3、广播接收者(Broadcast receiver)组件的激活
2、关闭组件
3、清单文件
4、Intent过滤器
1、激活组件:意图(Intents)
当接收到ContentResolver发出的请求后,内容提供者被激活。而其它三种组件——活动、服务和广播接收者,被一种叫做意图(intent)的异步消息激活。意图是一个保存着消息内容的Intent对象。对于活动和服务来说,Intent对象指明了请求的操作名称以及作为操作对象的数据的URI和其它一些信息。例如,它可以传递对活动的一个请求,让它为用户显示一张图片,或者让用户编辑一些文本。而对于广播接收者而言,Intent对象指明了广播的行为。例如当照相按钮被按下,它可以对所有感兴趣的对象广播。
对于每种组件来说,激活的方法是不同的。下面将分别介绍活动、服务、广播接收者组件的激活方法。
1.1、活动(Activity)组件的激活
通过传递一个Intent对象至Context.startActivity()或Activity.startActivityForResult()以载入(或指定新工作给)一个活动。相应的活动可以看到初始的意图,这个意图通过getIntent() 方法来查看激活活动。Android调用活动的onNewIntent()方法传递任何后续的意图。
一个活动经常启动了下一个。如果它期望它所启动的那个活动返回一个结果,它会调用startActivityForResult()而不是startActivity()。例如,如果它启动了一个活动让用户挑选一张照片,它可能会返回被选中的照片。结果以一个Intent对象传递调用活动的onActivityResult() 方法。
1.2、服务(Service)组件的激活
通过传递一个Intent对象至Context.startService()以启动一个服务(或给予正在运行的服务以一个新的指令)。Android调用服务的onStart()方法并将Intent对象传递给它。
与此类似,一个Intent可以传递给Context.bindService()以在调用的组件和目标服务之间建立持续的连接。这个服务会在调用onBind() 方法中接受这个Intent对象(如果服务尚未启动,bindService()会先启动它)。例如,一个活动可以连接至前面讲到的音乐播放服务,并提供给用户一个可操作的(用户界面)以对播放进行控制。这个活动可以调用bindService()来建立连接,然后调用服务中定义的对象来控制播放。
1.3、广播接收者(Broadcast receiver)组件的激活
应用程序可以通过将Intent对象传递给
Context.sendBroadcast()
更多精彩
赞助商链接