您的位置:首页 > 移动开发 > Android开发

Android应用程序四个构建模块

2008-01-27 15:07 323 查看
Android应用程序有四个构建模块:
· 实体
· 意图接收机
· 服务
· 内容提供器
不是每一个应用程序都需要这四个模块,你的应用程序需要器中一个或者几个的组合。
一旦你决定你的应用使用的组件,你应当把它们列在名为AndroidManifest.xml的文件中。这是一个定义你的应用使用组件以及它们的性能和要求的XML文件。完整细节请参考 Android 注册文件部分的文档。

实体

实体是最常用的四个Android创建模块之一。一个实体就是一个应用程序的界面。每一个实体基类的派生类都可以作为你个单独的类执行,你的类将会显示一个由视图和响应时间组成的用户界面。很多应用程序包含大量的界面。例如,你个短消息应用程序可能有一个显示发送消息联系人列表,第二个界面就是写消息的界面,其它还有读消息界面和改变设置的界面。每一个界面都是作为一个实体来执行的。在某些例子中,一个实体可能返回一个值到前一个实体-例如一个实体让用户选择一张相片并且返回选定的相片给调用者。
当打开一个新的界面,前一个界面暂停并且存入历史栈中。用户向后浏览可以代开历史栈中的前一个界面。当它没有必要继续保存时,界面可以选择从历史界面删除。Android为每一从桌面启动的应用保存历史记录栈。


意图和意图过滤

Android使用一种称作”意图”的特殊类来描述从一个界面切换到另一个界面,一个意图描述一个应用下一步希望做的事情。意图数据结构最重要的两个元素就使动作和动作使用的数据。动作的典型值有MAIN(实体的入口), VIEW, PICK, EDIT,等等。数据作为URI(统一资源标识符)进行传递。例如:浏览一个人的通信录信息,你可以创建一个带VIEW动作的意图,并且设置URI数据来代表那个人。
还有一个相关的类称作InterFilter。当一个意图是有效请求执行时,一个意图过滤器描述一个实体(或者意图***,见下文)能够执行的动作。一个能显示某个人通信录信息的实体将公布一个InterFilter,它知道怎样处理视图动作当你保存这些数据时。实体在AndroidManifest.xml文件中发布它们的InterFilters。
从一个页面浏览到另一个页面时通过分析意图完成的。一个实体调用startActivity(myIntent)实现向前浏览。系统查找所有安装系统的意图过滤器并且选择与myIntent匹配最好的意图过滤器的实体。新的实体由意图进行通知,并导致实体启动。当调用startActivity时,处理意图的进程在运行时启动,这可以提供两个好处(The process of resolving intents happens at run time when startActivity is called, which offers two key benefits)。
· 实体可以通过发出一个意图形式的请求来重用其它组建功能。
· 实体可以在任何时候被一个带有同样IntentFilter的新实体替换。

意图***

当你的希望拟定应用程序代码去响应执行一个外部时间时,你可以使用一个意图***,例如,当你的电话响铃时,或者当数据网络可用,或者当子夜来临时。意图***不用显示一个界面,尽管它们可以使用通告管理器来通知用户一些有意思的事情发生。意图***注册在AndroidManifest.xml文件中,但是你可以通过使用代码Context.registerReceiver()来进行注册。调用意图借收起时,你的应用程序不一定需要运行;系统将启动你的应用,如果需要的话,当意图***被触发后,应用程序可以通过调用Context.broadcastIntent().发送它们的意图到其它应用程序。



服务

服务是长期存在和运行的不带界面的代码。一个例子是媒体播放器从播放列表中播放歌曲。在媒体播放器应用程序中,可能有一个或者多个实体。然而,音乐重放应当被一个实体处理,因为用户希望在切换到其它界面时音乐能够继续播放。在这个例子中,媒体播放实体可以启动一个服务,使用Context.startService()在后台运行来保持音乐的播放。系统将保持阴血重放服务一直运行知道结束。(你可以通过阅读Android应用得活动周期来优先了解更多的服务提供功能)。注意你可以连接到一个服务(并且如果它还没有运行,你也可以启动它)通过条用Context.bindService()方法。当连接到一个服务后,你可以通过服务公开的接口与它进行通信。对于这个音乐播放服务,你可以暂停,重播,等等。


内容提供器

应用程序能保存它们的数据到文件中,一个SQLite数据库,或者其它的机制保存。一个内容提供器,在你希望你的应用程序数据同其它应用分享数据时是非常有用的。一个内容提供者方是一个类,它执行一套标准的方法,使得其它应用保存和获取它自己处理过的数据。
想了解更多的关于内容提供器的细节,请参考访问内容提供者。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐