WEB开发网
开发学院手机开发Android 开发 Android SDK 开发之应用程序基础 阅读

Android SDK 开发之应用程序基础

 2010-03-23 04:53:00 来源:WEB开发网   
核心提示:当Android检测到有一个需要被某个component来处理的请求,它就会保证该component的应用程序进程运行,Android SDK 开发之应用程序基础(3),在需要的时候启动它,并且保证有一个可用的component实例,然后调用service定义的方法来影响播放,关于绑定service详见Remote p

Android检测到有一个需要被某个component来处理的请求,它就会保证该component的应用程序进程运行,在需要的时候启动它,并且保证有一个可用的component实例,当需要的时候创建它。

Activating components: intents

content provider在接收到ContentResolver的请求时被激活。另外的三种component — activity, service和broadcast receiver是被称为intents的异步消息激活的。一个intent是一个Intent对象,它保存了消息的内容。对于activity和service来说,它指定了请求的操作名称和待操作数据的URI等等。例如,它可以传递给activity一个请求,让它显示一张图片或者让用户编辑一些文字。对于broadcast receiver来说,Intent对象指定了操作的名称。例如,它可以把“照相机按钮被按下”这个事件告诉感兴趣的应用程序。

激活每一种component有不同的方法:

一个activity通过将Intent对象传给Context.startActivity()或者 Activity.startActivityForResult()的方式来启动。响应的activity可以通过getIntent()方法看到启动它的intent。Android调用activity的onNewIntent()方法来将后续的intent传递给它。一个activity通常会启动另一个。如果它期待从它启动的activity中得到结果,则调用startActivityForResult()。例如,如果它启动了一个让用户选择一张图片的activity,它可能期待返回被选择的图片。该结果是放在一个Intent对象中,通过调用onActivityResult()的方式来返回的。

一个service通过将Intent对象传给Context.startService()的方式来启动的(或者将新的指令传给一个service)。Android调用service的onStart()方法并将Intent对象传递给它。类似的,一个 intent可以被传递给Context.bindService()以建立一个在主调component和目标service之间的链接。 service在onBind()调用中接收到Intent对象。(如果service没有启动,bindService()可以选择启动它。)例如,一个activity可以和一个音乐播放service建立链接,这样它就可以为用户提供控制播放的界面。activity调用bindService() 来建立连接,然后调用service定义的方法来影响播放。关于绑定service详见Remote procedure call一节。

一个应用程序可以通过把一个intent对象传递给Context.sendBroadcast(), Context.sendOrderedBroadcast(), and Context.sendStickyBroadcast()这样的方法来启动一个broadcast。Android将intent通过onReceive()方法来传递给所有感兴趣的broadcast

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Android SDK 开发

编辑录入:coldstar [复制链接] [打 印]
赞助商链接