Android应用程序四个构建模块
16lz
2021-01-24
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 数据库,或者其它的机制保存。一个内容提供器,在你希望你的应用程序数据同其它应用分享数据时是非常有用的。一个内容提供者方是一个类,它执行一套标准的方法,使得其它应用保存和获取它自己处理过的数据。 想了解更多的关于内容提供器的细节,请参考访问内容提供者。
更多相关文章
- Android写一个简单的欢迎界面
- Android(安卓)Studio和eclipse之间的不同
- Windows环境中集成Android4.x和Exclipse开发环境
- Android快速实现二维码扫描--Zxing
- Android使用代码进行界面布局和改变图标、标题、名称、主界面
- Android(安卓)使用 WebView 实现 Hybrid 的思路导引
- Android的隐式意图
- 【Android(安卓)界面效果28】Android应用中五种常用的menu
- Android如何制作一个简单的登陆界面