深入剖析Android Activity

99 篇文章 0 订阅
80 篇文章 0 订阅

http://blog.csdn.net/pku_android/article/details/7596854

活动是最基本的android应用程序组件,应用程序中,一个活动通常是一个单独的屏幕,Activity代表—个用户所能看到的屏幕,Activity主要处理—个应用的整体性工作,对其概念及生命周期进行剖析叮加深对其了解,加强对其灵活应用。

1、  Android应用程序的组成

Android系统是Google公司开发的基于Linux平台的开源手机操作系统,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的开放和完整的移动软件。—个通过Android框架所创建的Android应用程序。有四种基本类型。

(1)          Activities。Activities类似于桌面系统下的独立应用程序,例如:office办公软件。Activity是由许多需要及时运行的可执行代码组成,用户或者操作系统都可以通过实例化。运行Activities。Activities可以与用户机型交互,并且可以通过使用query或Intent对象向其他的Activities或服务请求数据或服务。

许多Android可执行代码将在Activity的环境下执行。Activities通常相当于—个显乐器:每个Activity都有—个界面提供给用户。当—个Activity当前不再运行时,操作系统将其杀死以保护内存。

(2)Services。Services类似于桌面操作系统和服务器操作系统的服务或守护程序。Services

是由一些可执行代码组成,通过实例化运行在后台,并且直到手持设备关闭后才结束Services一般没有用户界面。

(3)Broadcast and Intent Receivers。这些接收器是对其他应用程序的服务请求作出响应。

—个广播信息接收器是在系统做大规模广播事件时作出响应。这个广播信息可以来自Android系统自身或者来自运行在该系统上的一些程序。—个Activitiy或者service给其他应用提供了执行—个Intent接收器来访问自己功能的途径,该Intent接收器是由一段可以向其他Activities请求数据或服务的可执行代码组成。请求Activity创建—个Intent,并由Android框架通过分析作出决定是哪个应用程序接收并应用它。Intents在Android中是—个关键结构元素,可以使从已存在的应用中创建新的应用,在你的应用程序中.你可以通过使用Intent对象与那砦可以提供你所需要的信息的其他应用程序和服务相瓦配合。

(4)Content providers。content提供器是用来创建与其他Activity和Service共享数据的对

象。一个content Provider使用—个用URI组成的标准接口来实现向其他应用程序请求数据,

即使那些应用程序可能不知道使用的足哪个Content Provider例如:当—个应用程序执行一

个Query对象来查找数据,它所执行的URI结构如下:

Content://contacts/people

操作系统依靠观察哪个应用程序将自己作为—个ContentProvider来提供URI.并且发送请求给对应的应用程序。如果不止一个Content Provider注册提供URl,操作系统将询问用户将使用哪个。—个应用程序没有要求必须使用所有的Android组件,但是一个优秀的应用程序将使用其提供的构建机制,这样就不会出现代码重复或者引用其他应用程序很困难的情况。URI和Intent一起为用户提供厂灵活的Android环境:你可以很简单的添加、删除和取代—个应用程序。并且在Intent和URI的松耦合配合下。可以保证所有的事情一起进行。

2、  Activity相关概念

—个Activity相当于手机的一屏,它能够获得焦点,用户一般都在它上面操作。几乎所有的activity都跟用户打交道,所以Activity类丰要负责创建—个窗口。可以通过调用setContentView(View)方法在Activity上放置UI组件。Activity除了通常作为一个全屏的窗口呈现给用户之外,它们还有其他的使用片法:

(1)作为一个浮动窗口,这可以通过设置theme属性windowsIsFloating来实现;

(2)嵌入其他的Activity,这使用Activity—Group来实现。Activity的子类通常要实现如下两个方法,也就是说,当你要自己创建一个activity的时候,一般需要实现的:

(1)onCreat(Bundle)。我们可以在该方法里初始化Activity通常,我们在这个方法里调用setContentView(int)来设置Activity的内容.这个方法的int类型的形参是—个布局资源的ID,我们在这个布局中就设计好了Activity的内容了。此外,使用findViewById(int)方法检索我们要进行交互的widgets组件。

(2)onPause()。当用户离开当前activity的时候,我们就在这个方法里面处理,一般来说。就是处理用户所作的改变,譬如用户填写了一些数据,我们就在这个方法里提交这些数据进行保存,通常是保存到Content Providers。

3、Android活动Activity的生命周期

Android是围绕移动应用的唯一需求进行设计的。在特定情况下,android可以识别移动设备上受限制的资源(如内存和电量),以及提供相应的机制保护这些资源,这些机制在Android的Activity生命周期体现得很明显,定义了Activity从创建到销毁的过程状态和事件。

Android活动Activity是一个非常著名的生命周期.每个Android应用程序的活动都有几个状态,但开发者是不需要关心应用程序是什么状态,这全部由Android操作系统负责管理:开发者可以通过调用相关的方法获知到应用程序活动状态即将改变。:

onCreate(Bundler):活动Activity在第一次被创建时调用该方法,开发者可以在该方法中做一些初始化上作。比如创建用户界面,创建你的视图和打开Activity需要用到的所有数据文件。onCreate允许—个null参数,或者是—个由onSaveInstanceState()方法保存下的状态作为参数。onStart()表示该活动将要显示给用户。

onResume():当活动可以与用户交互时调用该方法。在此开发播放动画和音乐是—个很不错的时机。

onPause():当活动将要被放置到后台(background)运行时调用该方法,通常另一个活动被激活或启动到前段(foreground)时,在此时可以保存应用程序的状态。

onStop():当活动Activity在一段时间里用户不可见和需要时,将调用该方法。如果设备内存紧张时.可能不会调用这个方法,此时操作系统只简单的终端进行。

onRestart():当该方法调用时,标志该活动将重新从停止状态显示到前端。

onDestroy():当活动被销毁时调用该方法。当内存紧张时,系统不一定会调用onDestroy()这个方法。

onSaveInstanceState(Bundle):Android调用这个方法保存活动的先前状态,比如光标在文本编辑框中的化置。一般来说,我们是不需要重载这个方法的,因为系统缺省是自动保存用户界面所有的状态的。

那些没有运行在前端的活动可能会被停止,或者被Linux进程管理杀死进行,以为新的活动腾出更多的资源.这个经常发生的情况,因此开发者在设计程序之初就要重新考虑这个问题。在大多数情况下,onPause()活动中最后调用的方法.因此可以在这个方法里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值