android.app.Activity---中文

Android.app.Activity

Activity是用户主要也是唯一打交道的途径。基本上所有的Activity都是和用户打交道的,你可以通过setContentView(View)来创建一个窗口。Activity常常是以全窗口的模式展示的,当然也有其他的展示方式:浮动窗口(windowIsFloating)或则嵌入到其他Activity(ActivityGroup)。基本上所有子类都会重写一下两个方法:

◆ onCreate(Bundle):初始化Activity。这里常会调用setContentView(int)来加载layout资源来定义你的UI,并且使用findViewById(int)来获取组件。

◆ onPause():指离开Activity时候触发的方法。用户在组件上所做的变更都要提交(通常保存到ContentProvider)

如果有调用Activity.startActivity(),必须在AndroidManifest.xml文件中的<activity>标签中声明该Activity。

Activity在整个应用的生命周期中起至关重要的作用。

Activity Lifecycle

系统中的Activity可以通过一个activity栈来进行管理。当一个新的activity启动的时候,它首先会被放置在activity栈顶部并成为running状态的activity —— 之前的activity也在activity栈中,但总是被保存在它的下边,只有当这个新的activity退出以后之前的activity才能重新回到前景界面

所有的activity有四中状态

◆ 如果activity在屏幕前端(在堆栈栈顶),那么这个activity是运行的

◆ 如果一个activity失去焦点时仍然可见(指新打开的activity不占用整屏),那么它的状态是paused。Paused 的Activity仍然可见(依然保存它的数据和状态信息,并且仍然由window manager ),但是会在系统处于低内存状态时候被清除。

◆ 如果一个Activity被其他activity覆盖时,它将处于stopped状态。它仍然保留数据和状态信息,但是它对于用户是不可见的。但是它会在系统其他地方需要内存的时候被杀掉

◆ 如果一个Activity处于paused或则stopped状态时,系统可以通过关闭或则杀掉进程的方式来释放它占用的内存。当再次需要它的时候,系统会重新启动并加载之前的状态。

下图是Activity的主要状态图:

对于你的activity,有三个点比较关键:

◆ Activity的整个生命周期从onCreate(Bundle)到onDestory().activity会在onCreate()时候创建所有的全局状态并且会在onDestory()时候释放这些资源。比如如果需要一个Thread在后台下载网络上的资源,那么需要在onCreate(Bundle)时候创建它并且在onDestory()时候释放它。

◆ Activity可见生命周期从onStart()到onStop().这个时间我们可以在屏幕上看到这些组件,尽管可能这个组件不在最前端。这两个方法之间可以调用一些展示给用户看的资源。比如可以在onStart()是创建一个BroadcastReceiver来接收对用户界面有影响的信息,在onStop()时候关闭它,那么在每次调用onStart()和onStop()时候都会穿件这个BroadcastReceiver。

◆ Activity的前景生命周期从onResume()到onPause()之间。这期间Activity处于和用户交互阶段。Activity会不断的在resume和pause状态之间切换:设备进入睡眠、activity需要的结果已传递过来了或则新的intent到达时。所以这两个方法应该是轻量级的。

Activity在整个生命周期中定义了以下方法,这些方法是以hook的形式定义的,你可以在子类中重写他们,一般来说子类都要覆盖onCreate(Bundle)来初始化一些数据而重写onPause()来提交用户的数据。一般会在最后调用父类的构造函数

时间: 2024-09-08 21:41:29

android.app.Activity---中文的相关文章

通过实例简单讲解Android App中的Activity组件_Android

Activity是Android应用中,最直接与用户接触的组件,它负责加载View组件,使其展现给用户,并保持与用户的交互.所有的Activity组件均需要继承Activity类,这是一个Content的间接子类,包装了一些Activity的基本特性. View组件是所有UI组件.容器组件的基类,也就是说,它可以是一个布局容器,也可以是一个布局容器内的基本UI组件.View组件一般通过XML布局资源文件定义,同时Android系统也对这些View组件提供了对应的实现类.如果需要通过某个Activ

通过实例简单讲解Android App中的Activity组件

Activity是Android应用中,最直接与用户接触的组件,它负责加载View组件,使其展现给用户,并保持与用户的交互.所有的Activity组件均需要继承Activity类,这是一个Content的间接子类,包装了一些Activity的基本特性. View组件是所有UI组件.容器组件的基类,也就是说,它可以是一个布局容器,也可以是一个布局容器内的基本UI组件.View组件一般通过XML布局资源文件定义,同时Android系统也对这些View组件提供了对应的实现类.如果需要通过某个Activ

仿墨迹天气在Android App中实现自定义zip皮肤更换_Android

在这里谈一下墨迹天气的换肤实现方式,不过首先声明我只是通过反编译以及参考了一些网上其他资料的方式推测出的换肤原理, 在这里只供参考. 若大家有更好的方式, 欢迎交流. 墨迹天气下载的皮肤就是一个zip格式的压缩包,在应用的时候把皮肤资源释放到墨迹天气应用的目录下,更换皮肤时新的皮肤资源会替换掉老的皮肤资源每次加载的时候就是从手机硬盘上读取图片,这些图片资源的命名和程序中的资源的命名保持一致,一旦找不到这些资源,可以选择到系统默认中查找.这种实现是直接读取了外部资源文件,在程序运行时通过代码显示的

仿墨迹天气在Android App中实现自定义zip皮肤更换

在这里谈一下墨迹天气的换肤实现方式,不过首先声明我只是通过反编译以及参考了一些网上其他资料的方式推测出的换肤原理, 在这里只供参考. 若大家有更好的方式, 欢迎交流. 墨迹天气下载的皮肤就是一个zip格式的压缩包,在应用的时候把皮肤资源释放到墨迹天气应用的目录下,更换皮肤时新的皮肤资源会替换掉老的皮肤资源每次加载的时候就是从手机硬盘上读取图片,这些图片资源的命名和程序中的资源的命名保持一致,一旦找不到这些资源,可以选择到系统默认中查找.这种实现是直接读取了外部资源文件,在程序运行时通过代码显示的

面向大众的移动技术:签名,封装和发布Android app

作者: Andrew Glover 原文地址 译者:Ahaha  校对:赵峰 面向大从的移动打桩其它四篇文章地址(校对添加): (一).android简介: (二).轻轻一划,在android中为手势编码: (三).Android 应用程序生命周期中的活动与图标: (四).Overheard Word 的单词和手势. 添加一个多选择quiz到你的Android手机app,然后用一个安全数字证书签名 用网络逻辑,内容为王.但是对与手机用户来说,交互规则才是王道.对移动app静态信息设计在减少,并且

Android的Activity和Intent

一个Android应用程序中一般都有不止一个的Activity,这多个Activity之间 要相互通信和传递数据或者从一个Activity跳转到另一个Activity.这样才能使 得一个应用程序可以有丰富的功能和多元化的界面. Activity传递数据和相互跳转需要用到Intent对象.Intent在Android程序中 有很多的用途.我们现在主要关注它在两个Activity之间通信所起的作用.简单 地说Intent就是Android对象提供的Activity之间传递数据和操作指令的载体. In

android app进行代码混淆实例详解

  android app进行代码混淆实例详解         接到一个新的任务,对现有项目进行代码混淆.之前对混淆有过一些了解,但是不够详细和完整,知道有些东西混淆起来还是比较棘手的.不过幸好目前的项目不是太复杂(针对混淆这块来说),提前完成--现总结之. 第一部分 介绍下操作流程(eclipse): 1.打开混淆器:找到项目根目录下的project.properties文件,将"#proguard.config=${sdk.dir}/tools/proguard/proguard-andro

一看就懂的Android APP开发入门教程

  这篇文章主要介绍了Android APP开发入门教程,从SDK下载.开发环境搭建.代码编写.APP打包等步骤一一讲解,非常简明的一个Android APP开发入门教程,需要的朋友可以参考下 工作中有做过手机App项目,前端和android或ios程序员配合完成整个项目的开发,开发过程中与ios程序配合基本没什么问题,而android各种机子和rom的问题很多,这也让我产生了学习android和ios程序开发的兴趣.于是凌晨一点睡不着写了第一个android程序HelloAndroid,po出

【Android】Activity的四种launchMode

转自:http://blog.csdn.net/liuhe688/article/details/6754323 合抱之木,生於毫末:九層之台,起於累土:千里之行,始於足下.<老子> 今天在社区看到有朋友问"如何在半年内成为顶级架构师",有网友道"关灯睡觉,不用半年的...",的确,做梦还来的快一些.作为一个程序员,树立远大的目标是值得欣赏的,但不能只去空想,要一步一步地实践才行.成大事者,须从小事做起:万事起于忽微,量变引起质变. 我们今天要讲的是Ac