Browsed by
Tag: mobile

Android开发指导随译(2) — 应用程序基本原理(4)

Android开发指导随译(2) — 应用程序基本原理(4)

激活组件: Intents(意图)

CP收到CR的请求时就可以激活. 其他三个组件: 行为, 服务以及BR都是通过异步消息激活, 这种消息就是”intent(意图)”.

关闭组件

CP只在相应CR请求时存活, BR只在响应广播消息时存活, 因此对它们而言没有必要显式地关闭这些组件.

另一方面, Activities提供了用户界面. 它们与用户可能会有一个长期的会话过程, 会话期间即使是空闲也仍然保持激活. 类似的, 服务也可能保持运行很长一段时间. 因此Android提供方法有持续地关闭Activity和服务.

1. 可以调用Activity的finish()方法关闭Activity. 一个activity可以关闭另外一个activity.
2. 服务可以通过调用stopSelf()的方式来关闭自己, 或者调用Context.stopService()来关闭.

如果不再使用组件了, 系统也可以关闭它们, 或者当Android必须回收内存时也会关闭这些组件.

manifest文件 (?运货单文件)
Android启动一个程序组件之前, 需要知道这个组件的存在. 因此应用程序需要在一个manifest文件中声明它们的组件. manifest文件打包在.apk文件中, 该文件(.apk)还包含程序代码, 文件以及资源等.

manifest文件是一个结构化的xml文件, 并且总是命名为”AndroidManifest.xml”. 它最主要的任务就是将当前应用程序的组件情况告诉Android系统.

Intent过滤
Intent对象可以显式地命名为一个目标组件(Target Component), 此时Android可以通过manifest文件对它进行操作. 但是如果目标没有显式命名, Android就必须要查找最合适的组件来响应Intent, 方法就是将Intent对象与潜在目标的Intent filters(Intnet过滤)进行比较.