Activity :
活动是最基本的Android 应用程序组件,应用程序中,一个活动通常就是一个单独的屏幕。每一个活动
都被实现为一个独立的类,并且从活动基类中继承而来,活动类将会显示由视图控件组成的用户接口,并对
事件做出响应。大多数的应用是由多个屏幕显示组成。例如:一个文本信息的应用也许有一个显示发送消息的
联系人列表屏幕,第二个屏幕用来写文本消息和选择收件人,再来一个屏幕查看消息历史或者消息设置操作
等。这里每一个这样的屏幕就是一个活动,很容易实现从一个屏幕到一个新的屏幕并且完成新的活动。在某
些情况下当前的屏幕也许需要向上一个屏幕活动提供返回值--比如让用户从手机中挑选一张照片返回通讯录
做为电话拨入者的头像。
当一个新的屏幕打开后,前一个屏幕将会暂停,并保存在历史堆栈中。用户可以返回到历史堆栈中的前
一个屏幕。当屏幕不再使用时,还可以从历史堆栈中删除。默认情况下,Android 将会保留从主屏幕到每一
个应用的运行屏幕。
简单理解Activity 代表一个用户所能看到的屏幕,Activity 主要是处理一个应用的整体性工作,例如,监
听系统事件(按键事件、触摸屏事件等)、为用户显示指定的View,启动其他Activity 等。所有应用的Activity
都继承于android.app.Activity 类,该类是Android 提供的基层类,其他的Activity 继承该父类后,通过Override
父类的方法来实现各种功能,这种设计在其他领域也较为常见。
Intent :
调用Android 专有类Intent 进行架构屏幕之间的切换。Intent 是描述应用想要做什么。Intent 数据结构两
个最重要的部分是动作和动作对应的数据。典型的动作类型有:MAIN(活动的门户)、VIEW、PICK、EDIT
等。而动作对应的数据则以URI 的形式进行表示。例如:要查看某个人的联系方式,你需要创建一个动作类
型为VIEW 的Intent,以及一个表示这个人的URI。
Android 使用了Intent 这个特殊类,实现在屏幕与屏幕之间移动。Intent 类用于描述一个应用将会做什么
事。在Intent 的描述结构中,有两个最重要的部分:动作和动作对应的数据。典型的动作类型有:M AIN(activity
的门户)、VIEW、PICK、EDIT 等。而动作对应的数据则以URI 的形式进行表示。例如:要查看一个人的联
系方式,你需要创建一个动作类型为VIEW 的intent,以及一个表示这个人的URI。
与之有关系的一个类叫IntentFilter。相对于intent 是一个有效的做某事的请求,一个intentfilter 则用于描
述一个activity(或者IntentReceiver)能够操作哪些intent。一个activity 如果要显示一个人的联系方式时,需
要声明一个IntentFilter,这个IntentFilter 要知道怎么去处理VIEW 动作和表示一个人的URI。IntentFilter 需
要在AndroidManifest.xml 中定义。
通过解析各种intent,从一个屏幕导航到另一个屏幕是很简单的。当向前导航时,activity 将会调用
startActivity(IntentmyIntent)方法。然后,系统会在所有安装的应用程序中定义的IntentFilter 中查找,找到最
匹配myIntent 的Intent 对应的activity。新的activity 接收到myIntent 的通知后,开始运行。当startActivity 方
法被调用将触发解析myIntent 的动作,这个机制提供了两个关键好处:
-----------------------------------Android 编程基础
16
A、Activities 能够重复利用从其它组件中以Intent 的形式产生的一个请求;
B、Activities 可以在任何时候被一个具有相同IntentFilter 的新的Activity 取代。
IntentReceiver:
当你希望你的应用能够对一个外部的事件(如当电话呼入时,或者数据网络可用时,或者到了晚上时)做出响
应,你可以使用一个IntentReceiver。虽然IntentReceiver 在感兴趣的事件发生时,会使用NotificationManager
通知用户,但它并不能生成一个UI。IntentReceiver 在AndroidManifest.xml 中注册,但也可以在代码中使用
Context.registerReceiver()进行注册。当一个intentreceiver 被触发时,你的应用不必对请求调用intentreceiver,
系统会在需要的时候启动你的应用。各种应用还可以通过使用Context.broadcastIntent()将它们自己的
intentreceiver 广播给其它应用程序。
Service :
一个Service 是一段长生命周期的,没有用户界面的程序。比较好的一个例子就是一个正在从播放列表中
播放歌曲的媒体播放器。在一个媒体播放器的应用中,应该会有多个activity,让使用者可以选择歌曲并播放
歌曲。然而,音乐重放这个功能并没有对应的activity,因为使用者当然会认为在导航到其它屏幕时音乐应该
还在播放的。在这个例子中,媒体播放器这个activity 会使用Context.startService()来启动一个service,从而
可以在后台保持音乐的播放。同时,系统也将保持这个service 一直执行,直到这个service 运行结束。另外,
我们还可以通过使用Context.bindService()方法,连接到一个service 上(如果这个service 还没有运行将启动
它)。当连接到一个service 之后,我们还可以service 提供的接口与它进行通讯。拿媒体播放器这个例子来说,
我们还可以进行暂停、重播等操作。
Content Provider :
Android 应用程序能够将它们的数据保存到文件、SQLite 数据库中,甚至是任何有效的设备中。当你想
将你的应用数据与其它的应用共享时,内容提供器就可以发挥作用了。因为内容提供器类实现了一组标准的
方法,从而能够让其它的应用保存或读取此内容提供器处理的各种数据类型。
数据是应用的核心。在Android 中,默认使用鼎鼎大名的SQLite 作为系统DB。但是在Android 中,使用方
法有点小小的不一样。在Android 中每一个应用都运行在各自的进程中,当你的应用需要访问其他应用的数
据时,也就需要数据在不同的虚拟机之间传递,这样的情况操作起来可能有些困难(正常情况下,你不能读取
其他的应用的db 文件),ContentProvider 正是用来解决在不同的应用包之间共享数据的工具。
� 所有被一个Android 应用程序创建的偏好设置,文件和数据库都是私有的。
� 为了和其他应用程序共享数据,应用程序不得不创建一个Content Provider
� 要回索其他应用程序的数据,它自己的Content Provider 必须被调用
� Android 本地Content Provider 包括:
� CallLog:地址和接收到的电话信息
� Contact.People.Phones:存储电话号码
� Setting.System:系统设置和偏好设置
� 等等
分享到:
相关推荐
Linux初级入门教程旨在帮助初学者了解并掌握Linux操作系统的基础知识和基本操作。Linux是一种自由、开源的操作系统,广泛应用于服务器、个人计算机以及各种嵌入式设备。本教程将引导你踏入Linux的世界,学习其核心...
【JAVA初级入门教程】 JAVA,由SUN公司(现已被甲骨文公司收购)开发,是一种广泛应用的跨平台、面向对象的编程语言。JAVA在设计时摒弃了C/C++中一些复杂且较少使用的特性,使得它更适合初学者学习。JAVA以面向对象...
初级入门(可视化)课程主要面向初次接触RPA的新手,通过可视化的方式让学习者能够快速理解和上手。 1. **RPA简介**:RPA(Robotic Process Automation)是一种先进的技术,它通过预设的规则和逻辑,让“机器人”...
第一本教程《PHP初级入门热门教程.chm》可能涵盖以下内容: 1. **PHP基础**:介绍PHP的历史、特点以及安装配置环境,如XAMPP或WAMP服务器,确保新手能搭建起本地开发环境。 2. **PHP语法**:讲解PHP的基本语法,如...
ASP.NET初级入门经典,对初学者相当的实用
对于初级入门者,理解ASP.NET的基础概念和技术要点至关重要。 1. **基础概念** - **Web Forms**:ASP.NET Web Forms是ASP.NET的一种编程模型,它提供了一种通过拖放控件和事件驱动的方式来创建动态网页的方式。 -...
资源名称:易语言初级入门视频教程(20集)资源目录:【】初级入门第10课学习易语言自定义数据类型【】初级入门第11课易语言运算符【】初级入门第12课易语言运算符与表达式【】初级入门第13课自定义常量与使用方法...
#### 二、初级入门知识点 - **HTML基础知识**: - 标签语法:了解常用标签如`<div>`、`<span>`、`<img>`等的基本用法。 - 文档结构:理解如何组织一个完整的HTML文档结构,包括头部信息、主体内容等。 - **CSS...
### VFP简单初级入门教程知识点总结 #### 一、Visual FoxPro简介 **1.1 Visual FoxPro定义** - **关系型数据库管理系统**: Visual FoxPro(简称VFP)是一款功能强大的关系型数据库管理系统(RDBMS)。它可以用来...
RedHat Linux环境下防火墙配置初级入门
从给定的文件信息中,我们可以提取到关于PHP初级入门教程的关键知识点,下面将详细解析这些知识点: ### PHP初级入门教程概述 #### 1. PHP的定义与历史 PHP("Hypertext Preprocessor" 或 "Personal Home Page ...
"C#初级入门2010"这个主题涵盖了2010年时C#的基础知识,尽管现在可能有些过时,但基础概念仍然适用。以下是关于C#初级入门的一些关键知识点: 1. **基础语法**:C#语法简洁明了,类似于C++和Java。它包括变量声明、...
### Python小白初级入门进阶教程知识点总结 #### 一、Python简介与安装 - **Python简介**:Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。它由Guido van Rossum于1989年底发明,第一个公开发行...
CSS初级入门CSS初级入门CSS初级入门CSS初级入门CSS初级入门CSS初级入门CSS初级入门CSS初级入门CSS初级入门CSS初级入门CSS初级入门CSS初级入门CSS初级入门CSS初级入门CSS初级入门CSS初级入门CSS初级入门CSS初级入门...
详细的阐释了linux的初级理论,由浅入深,通俗易懂。
标题"qt开发初级入门"说明了本文档的主题是针对初学者的Qt开发培训教程。Qt是一个功能强大的跨平台C++图形用户界面应用程序开发框架,其强大的功能使得开发者能够创建多种类型的程序,不仅仅是GUI程序,还可以是...
"初级入门C#学习实例"是一个专门为初学者设计的资源包,旨在帮助新手快速掌握C#的基础知识和编程技巧。通过这个压缩包,你可以获得一系列的学习材料,让你在C#的学习旅程中更加高效。 首先,让我们深入了解一下C#的...
Python 初级入门笔记 本资源摘要信息涵盖了 Python 的初级入门知识,包括基本语法、数据类型、变量、转义字符、数据操作、条件判断、 Input() 函数等。 print() 函数 print() 函数用于输出内容,可以将括号中的...