一个android程序由多个组件组成,每个组件实现特定的功能,有的组件可以作为系统进入应用程序的入口点,各个组件协同合作,共同组成一个完整的应用程序。有4种不同类型的组件,每种组件有其独特的使用目的和生命周期。
- Activities-一个activity表示一个同用户交互的窗口界面。各个activity之间是彼此独立的。比如:为了把刚拍的照片通过email发送出去,在拍照应用中可以启动电子邮件应用中的写邮件activity。每个activity都继承自android.app.Activity类。
- Services-一个service组件不提供交互界面,在后台运行,一般长期运行或者进行远程访问。比如:播放音乐,或者通过网络下载数据,此时用户可以同时使用任何其它的应用。通常情况下,可以通过一个activity来与之交互,比如启动service,停止service,监测service的运行情况等。每个service都继承自android.app.Service类。
- Content Providers-一个content provider管理一组共享的应用数据。你可以把数据存储在文件系统,sqlite数据库,web,或者任何其它应用程序能够访问到的持久存储位置。通过content provider,其它应用可以查询或者修改数据。比如:android提供了一个管理用户地址簿信息的content provider,任何具有相应权限的应用都可以对地址簿中的联系人信息进行读写。此外,content provider也可以不共享数据,而是用于读写应用的私有数据。每个content provider都继承自android.content.ContentProvider类。
- Broadcast receivers-用于对系统级的广播通知作出响应。系统级的广播通知包括:屏幕关闭,电量偏低,拍照。应用程序也可以创建广播通知,比如:通知其它应用数据已经下载到设备上并可以使用。broadcast receiver不显示用户界面,它可以在接收到某个广播事件的时候,创建一个状态栏通知来提醒用户。或者为了响应这个事件,仅仅是启动一个service来执行一些任务。每个broadcast receiver都继承自android.content.BroadcastReceiver类。
任何应用都可以启动另一个应用的某个组件。比如:一个应用中希望用户拍一张照片,你可以启动另一个拍照应用中的activity进行拍照,而不用自己开发一个拍照功能。对于用户来说,可能会认为拍照功能也是你的程序中的一部分。
当系统启动一个组件,会启动该组件所属的应用的进程,并实例化组件所需要的类。比如:启动拍照程序的activity的时候,会启动拍照程序的进程,而不是你的应用的进程。和其它系统不一样,android应用程序没有单一的入口(比如:没有main方法)。
因为系统在单独的进程中运行每个应用,并且通过设定文件访问权限来阻止对其它应用的文件的访问。所以,你的应用无法直接激活其它应用中的组件。你只能发消息给android系统,告知你要访问某个组件的意图,然后由android系统来为你进行组件的激活。
激活组件的方法
- activity-可以传递一个Intent给startActivity方法或者startActivityForResult方法
- service-可以传递一个Intent给startService方法或者bindService方法
- broadcast receiver-可以通过传递一个Intent给sendBroadcast,sendOrderedBroadcast,sendStickyBroadcast方法,来发起一个广播
- content provider-可以执行ContentResolver的query方法
相关推荐
根据给定的文件信息,我们可以深入探讨Web应用程序框架组件及其在构建现代Web应用中的关键作用。这份《Web应用程序框架组件参考指南》不仅是一份技术文档,更是开发人员理解和掌握Web应用构建基石的重要资料。 ### ...
HarmonyOS/OpenHarmony 应用开发-ArkTS 画布组件 Canvas 是 ArkTS 框架中的一种非常重要的组件,能够帮助我们快速地创建高质量的图形绘制应用程序。但是,我们需要正确地使用该组件,并注意相关的性能问题和限制。...
微信小程序是一种轻量级的应用开发平台,主要针对移动端,提供了丰富的API和组件,使得开发者能够构建原生体验的应用。在给定的压缩包文件“微信小程序-虚拟车牌输入键盘组件vehicleKeyboard-master.zip”中,包含了...
### MAC_组件应用程序设计—COM+应用程序设计 #### COM+应用程序设计概述 本文旨在解析COM+应用程序设计的关键概念和技术要点,特别关注微软MAC考试中涉及的相关知识点。通过一系列的模拟试题,深入理解COM+框架的...
在CAD(计算机辅助设计)领域,"应用程序的组件中发生了未处理的异常"是一个常见的错误提示,这通常意味着在运行CAD软件时,遇到了一个程序无法正常处理的问题,导致了系统崩溃或者异常中断。这种情况可能由多种因素...
COM+(Component Object Model Plus)是微软提出的一种用于构建分布式应用程序的组件模型,它扩展了原有的COM(Component Object Model)技术,提供了更多的服务和特性,旨在简化企业级应用的开发和管理。...
本资源提供了一个滑动选项卡组件的小程序开发指南和完整源码,该组件设计用于提升用户界面的交互性和视觉体验。滑动选项卡允许用户通过简单的滑动动作在不同的视图或内容区域之间切换,非常适合于需要展示多个相关...
使用微信小程序的CSS(WXML)和WXSS,开发者可以调整日历组件的样式,包括颜色、字体、布局等,以符合应用的整体设计风格。 总的来说,微信小程序日历组件结合了JS编程、组件化开发、微信小程序API、用户交互设计...
- 优化系统组件-数据库组件(大数据量有显著提升) - 优化基础组件-分类组件 - 优化基础组件-标签组件 - 优化基础组件-安装组件 - 升级初始插件-友情链接 - 优化初始模板-UI界面/查询参数 - 增加自定义分页...
在前一段的工作中,需要开发一套简单的网络数据传输程序。由于平时常用Delphi做点开发,故此次也不例外。Delphi 7中带有两套TCP Socket组件:Indy Socket组件(IdTCPClient和IdTCPServer)和Delphi原生的TCP Socket...
第1章 Delphi 7新特性 1.1 安装 1.2 新特性 1.3 IDE的改进 第2章 Delphi 7组件简介 2.1 VCL 2.2 Delphi 7组件 2.3 可视组件的通用属性和事件 第3章 常用组件 3.1 文本相关组件 ...18.6 IW组件应用实例
微信小程序组件是微信生态系统中的核心组成部分,它们是开发者构建用户界面的基本模块。微信小程序自推出以来,因其轻量化、便捷的特性,迅速受到企业和开发者们的欢迎。尤其对于小企业而言,微信小程序提供了一种...
这些组件是运行基于.NET的应用程序的基础,其中客户端配置文件提供了更轻量级的选择,适合资源有限的嵌入式设备。.NET Framework是微软推出的一套开发平台,用于简化跨平台应用的开发与部署,包含了丰富的类库、...
本文详细介绍了Android应用程序的基础知识,包括开发语言、构建工具、运行环境以及应用程序组件等内容。通过理解这些基础知识,开发者可以更好地构建高质量的Android应用程序。需要注意的是,虽然本文基于Android ...
通过合理地使用这个预加载组件,开发者可以提升微信小程序的图片加载效率,降低用户等待时间,从而提升整个应用的用户体验。同时,掌握预加载和图片管理策略也是现代移动应用开发的重要技能之一。
COM组件是Windows平台下广泛使用的软件构造块,尤其在早期的Windows编程中,COM组件的应用非常普遍,包括开发各种控件、服务和应用程序。 COM组件的核心概念在于接口,它将对象的实现与使用分离,通过接口来提供...
微信小程序是一种轻量级的应用开发平台,它允许开发者在微信内构建交互丰富的应用程序,无需安装即可使用。在微信小程序的开发过程中,富文本解析是一个重要的环节,尤其在处理用户输入或者从服务器获取的HTML格式...
ShowMessage('你好,欢迎使用Delphi组件应用实例!'); end; ``` 通过以上内容,我们可以看出Delphi组件的应用实例是如何帮助开发者快速构建功能丰富的应用程序的。了解和熟练掌握Delphi的组件系统,可以极大地提高...