Android之旅三Activity详解

1、Android系统中Activity提供可视化的用户界面,一个Android应用通常由多个Activity组成,多个Activity组成了Activity栈,当前活动的Activity处于栈顶,Activity有自己的生命周期,由Android系统控制。

2、Activity上面是一个Window对象,Window上面通常是一个布局容器兑现Layout,再上面是我们要展示的组件,如按钮、文本框等。

3、 Activity的方法的回调思想

从上面的代码我们可以看出:接口(系统框架)是系统提供的,接口的实现是用户实现的。达到接口统一,实现不同的效果,系统通过在不同状态下回调我们的实现类,达到接口和实现的分离。

4、 Activity的创建:

5、 启动另一个Activity:一个Activity启动另一个Activity,我们可以使用startActivity()或者startActivityForResults()方法(能返回结果),这两个方法中的一个最重要的参数是一个很重要的组件IntentIntent是相同或者不同组件的信使。

6、 Activity之间的数据传递:在java web中我们把数据放在scope中,例如使用sessionrequest等,在android中我们使用Bundle对象,我们将要传递的信息封装到这个对象里面,通过Intent对象传递到另一个Activity中。

我们将信息放入Bundle中,并通过Intent组件传递给另一个Activity

在另一个Activity中获得数据:

7、 启动另一个Activity并返回结果,例如在注册信息的时候用户填上一步和下一步,当用户点击上一步,信息的保存:

下一个Activity

8、 Activity的声明周期:在Android系统中,Activity作为Activity栈被管理,当前活动的Activity处于栈顶,之前非活动的Activity被压入下面成为非活动的Activity,等待是否可能被恢复为活动状态。

Activity中四个重要的状态:

Activity的生命周期可分为一下三个过程:

整个完整的生命周期:从onCreate()方法开始到onDestory()方法结束

可见生命周期:从onStart开始到onStop结束

前台可见生命周期:从onResume()方法开始到onPause()方法结束

Activity各种状态及方法调用时机:

 

注意:如果一个activity完全被另一个activity所掩盖那他会处于stop状态。但仍然保存着原来的状态和信息。然而,如果别的地方需要更多的内存而且这个activity仍一直处于隐藏状态,那么系统有可能会杀死他的进程。如果一个activity是暂停或者停止状态,系统可以清理他们占用的内存,或者调用finish()方法,或者直接结束他的进程。当他再次显示给用户时,会完全的重新运行并且加载以前所存储的信息。

更多相关文章
  • Android四大组件之Activity详解
    .Activity的本质 Activity是Android提供的四大组件之一,是进行Android开发必不可少的组件.Activity是一个界面的载体,可以把它与html页面进行类比,html页面由各种各样的标签组成,而Activity则可以由各种控件组成.然而Activity也并不是那么简单.查看 ...
  • Android不规则点击区域详解
    Android不规则点击区域详解 摘要 今天要和大家分享的是Android不规则点击区域,准确说是在视觉上不规则的图像点击响应区域分发. 其实这个问题比较简单,对于很多人来说根本不值得做为一篇博文写出来,但在我的群里确实有童鞋不了解如何实现并且很想知道完整的流程是什么样的,故完成demo作为参考. ...
  • android瀑布流的实现详解,附源码
    android 瀑布流的实现详解,附源码 介绍 参考自:https://github.com/dodola/android_waterfall,因为原来的代码封装不好,所以,我根据源码的思路,重新写了一遍,所以有了现在这个项目:https://github.com/youxilua/waterfal ...
  • 三张图片详解Asp.Net全生命周期
    用三张图片详解Asp.Net 全生命周期 下面我们使用三张图片解析ASP.net的整个生命周期,我总感觉使用图片更加的清楚的说明这种问题,所以使用的这样方式 说明: 1  第一张图片从全局说明从客户端发出一个Request请求,服务器windows内核中的HTTP.SYS组件接收该请求开始到IIS处 ...
  • Activities(活动)作为android四大组件之一,掌握理解它是非常关键的.Activity是android的显示界面,类似于swimg的JFrame.我们很容易看出android的程序表面上就是不同Activity的切换,切换到不同Activity是通过Intent来实现,稍后会详细介绍. ...
  • Android热门网络框架Volley详解
    .Volley简介 volley的英文意思为‘群发’.‘迸发’.Volley是2013年谷歌官方发布的一款Android平台上的网络通信库.Volley非常适合一些数据量不大,但需要频繁通信的网络操作.使用Volley进行网络开发可以使我们的开发效率得到很大的提升,而且性能的稳定性也比较高.但是Vo ...
  • 一.LocationManagerLocationMangager,位置管理器.要想操作定位相关设备,必须先定义个LocationManager.我们可以通过如下代码创建LocationManger对象.[java] view plaincopyprint?LocationManger locati ...
  • 深入浅出Spring三AOP详解
     上次的博文深入浅出Spring(二) IoC详解中,我为大家简单介绍了一下Spring框架核心内容中的IoC,接下来我们继续讲解另一个核心AOP(Aspect Oriented Programming),即面向切面编程. 1.OOP回顾        在介绍AOP之前先来回顾一下大家都比较熟悉的O ...
一周排行
  • Python如何重新加载模块?Python教程(http://www.maiziedu.com/course/python/)中重新加载模块的方法有哪些呢?在python开发中,我们为了防止两个模块互相导入的问题,P ...
  •  2007年考过了 国家软考中级 网络工程师: 时过境迁,5年后,准备再考一个高级的 网络规划设计师: 下午很突然才有这个想法的: 说做就做,准备备考2012上半年的网络规划设计师: 大家祝福我吧:) http:// ...
  • 客户公司要架设两台FTP服务器分别给两个地点的分公司使用,但是这两台服务器都比较老了,一台HP 380G5 ,一台HP 380 G4,所以他们计划用linux,用什么版本他们就没说,于是我计划用CentOS6.2,其 ...
  • serv-u搭建的ftp有三种登录访问方式:第一:在我的电脑-右键资源管理器-打开后在地址栏里输入ftp://ftp服务器IP 回车即可看到登录界面,此时会提示输入用户名及密码,输入进行登录.第二:在IE里面输入ht ...
  • 主要过程:. 安装lunux 环境. 安装编译工具. 下载Linux kernel. 安装Android SDK. 获得root file system. 修改Linux kernel 源码. 配置Linux ker ...
  • vim是vi的加强版.进入vim或编辑完毕按esc后,输入/可帮助查找字符串,例如/main帮助查找main函数,找到的main高亮显示.取消高量显示的两个办法:1)按esc键,输入:nohl2)按esc键,查找不存 ...
  • 装饰器: 1 import time 2 def timeit(fn): 3 def wrap(*args,**kwargs): 4 start = time.time() 5 fn(*args,**kwargs) ...
  • 1.利用DataGrid内置的分页功能 在DataGrid控件的属性里加入以下语句 AllowPaging="True"PageSize="5"PagerStyle-Horiz ...
  • 最近在使用cocos2d-x做开发,其中会用到TexturePacker工具打包纹理文件,但是有时候想从打包好的.plist和.png大图文件反向生成原始的小图文件,TexturePacker好像没有提供这样的功能, ...
  • iOS设计规范中要求,当应用退出的时候(包括被终止运行时候),画面中UI元素状态需要保持的,当再次进来的时候看状态与退出是一样的.iOS6之后苹果提供以下API使得UI状态保持和恢复变得很容易了.在iOS6中我们可以 ...