Android开发--Activity
一:Activity生命周期
(1)Activity生命周期中的几种方法:
protected void onCreate(Bundle savedInstanceState):
protected void onStart():
protected void onResume():
protected void onPause():
protected void onStop():
protected void onRestart():
protected void onDestory():
(2)Activity生命周期中的四种状态:
Active(Running)状态:Activity启动后,进入后进先出的Activity栈,并处于栈的最顶部,此时处于激活状态与用户进行交互,获得了用户的输入焦点;
paused覆盖状态:被一个透明的或对话框形式的Activity覆盖,此时失去了焦点,不能与用户交互,依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但当系统处于极低内存的情况下,仍然可以杀死这个 Activity。
Stoped停止状态:完全被另一个 Activity 覆盖是,它处于停止状态。它仍然保留所有的状态和成员信息。然而它不在为用户可见,所以它的窗口将被隐藏。如果其它地方需要内存,则系统经常会杀死这个 Activity。(home键按下)
Killed杀死状态:被系统杀死回收或者没有被启动时处于 Killed 状态(按下返回键)
(3)创建到销毁的执行过程:
onCreate和onDestory对应。onStart和onStop对应,onResume和onPause对应!!!
onCreate->onStart->onResume-> onPause->onStop->onDestory;
按照其生命周期图,主要执行过程有7中形式,
参见:http://blog.csdn.net/pku_android/article/details/7307625
特别注意:onPause()->onResume()的执行过程,此时一般要用到Intent(意图)
(4)总结
一个Activity与一个LayOut对应,LayOut一般用XML文件生成,XML文件的命名必须是小写,当然,有时也可以不是XML文件,用代码生成一个动态的LayOut。
XML文件生成工具:droiddraw
好的建议:(1)建议在onCreate函数中尽量少写代码,把尽肯能多的东西放到onResume和那个自定义的初始化函数里去写,onResume这个函数被调用的几率是非常高的
(2)onCreate函数:注册你要用到的变量,比如说service,receiver,这些变量是无论你的Activity是在前台还是在后台都能够被响应到的,然后调用上面那个用来初始化的函数初始化布局信息。
onStart函数:注册一些变量。这些变量必须在Android Activity类在前台的时候才能够被响应。
onResume函数:调用一些刷新UI的函数,每当Activity调用到这里时就要刷新一下UI各控件的状态。
onPause函数:一般是做一些变量的设置,因为这个时候Activity马上就要切到后台处理,可能有些变量就要被释放掉或者状态要做些相应的调整。
onStop函数:反注册在onStart函数中注册的变量。
onDestory函数:反注册在onCreate函数中注册的变量。
三:Activity间通信
主Activity和子Acitivity通信的方式有很多种这里介绍两种最简单的方法。
方法一:通过Intent来进行参数的传递,在Intent中有各种putXXX方法来存放各种参数,然后在子Activity接收到这个Intent时能够从这个Intent里取出这个参数,利用getIntent()。getXXXExtra()方法就可以了。
方法二:当一个主Activity想从一个子Activity接受消息时可以使用StartActivityforResult方法,例如这样启动一个Activity,startActivityForResult(i,
REQUEST_CODE); 然后在主Activity中的onActivityResult方法对requestCode进行判断来对子Android Activity类不同的返回处理不同的情况,另外子Activity也可以利用setResult方法来设置主Activity方法中的resultCode,这样主Activity也可以根据子Activity的不同的resultCode来处理不同的情况。
四:Activity四种加载模式
Activity有四种加载模式:
- standard
- singleTop
- singleTask
- singleInstance
参见:http://www.cnblogs.com/-OYK/archive/2011/05/31/2064802.html
Android开发--Activity的更多相关文章
- Android开发 ---Activity的7种运行状态
Android开发 ---Activity的7种运行状态 创建 --> 启动 --> 运行 --> 暂停 --> 停止 --> 销毁 重启 操作图解: 1.MainA ...
- Android开发——Activity生命周期
Android开发--Activity生命周期 Activity作为四大组件之首,也是使用最频繁的一种组件.本文将主要讲解Activity生命周期,包括正常情况下的Activity生命周期和异常情况下 ...
- android开发------Activity生命周期
这几天工作比较忙,基本没有什么时间更新播客了. 趁着今晚有点时间,我们来简单说一下什么是Activity生命周期和它们各阶段的特征 什么是生命周期 在还没有接触android开发的时候,听到有人说Ac ...
- Android开发--Activity生命周期回顾理解
Activity和Servlet一样,都用了回调机制.我们通过类比servlet来学习Activity.当一个servlet开发出来之后,该servlet运行于Web服务器中.服务器何时创建servl ...
- Android开发--Activity的创建
1.Activity概述 Activity是android四大基本组件之一.每一个activity文件对应一个界面,一个程序由多个activity组成. 2.Android工作目录
- Android开发——Activity启动模式详解
1. Activity的启动模式 本文原创,转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/52054893 1.1 Standard标 ...
- Android 开发 Activity里获取View的宽度和高度 转载
原文地址:https://blog.csdn.net/chenbaige/article/details/77991594 前言: 可能很多情况下,我们都会有在activity中获取view 的尺寸大 ...
- Android开发Activity全局切换的动画效果
切换动画 slide_left_in.xml 从左边进 --> 退出的时候使用 <?xml version="1.0" encoding="utf-8&quo ...
- Android开发——Fragment知识整理(二)
0. 前言 Android开发中的Fragment的应用非常广泛,在Android开发--Fragment知识整理(一)中简单介绍了关于Fragment的生命周期,常用API,回退栈的应用等知识.这 ...
随机推荐
- UVA 11578 - Situp Benches(dp)
题目链接:11578 - Situp Benches 题意:健♂身♂房有两个仰卧起坐坐垫,每次调整角度要花费10元/10度,每次使用要花费15,如今给定n个人的时间顺序,和所希望的角度,求最少花费 思 ...
- python去除停用词(结巴分词下)
python 去除停用词 结巴分词 import jieba #stopwords = {}.fromkeys([ line.rstrip() for line in open('stopword. ...
- PADS的历史版本
1986年:PADS PCB,DOS操作系统 1989年:PADS Logic,DOS操作系统 1990年:PADS 2000,DOS操作系统 1993年:PADS Perform,DOS和Windo ...
- CentOS 7.2 , YUM 方式安装VSC
1.引入VSC站点key和repo地址 sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c ' ...
- 文件共享和使用 dup 函数创建新描述符的区别
前言 文件共享是指同时打开一个文件 用 dup 函数能对指定文件描述符再创建一个新的描述符,且这个新的描述符和旧的描述符指向的是同一个文件. 这两种行为有什么区别呢?下面给出的两张文件系统的图形象的解 ...
- SpringInAction4笔记——复习
由于目前只做后端的业务代码的开发,所以根据自己掌握的熟悉程度,只需要复习几个模块即可 重点看的是核心容器(IOC),redis,缓存,消息(主要是rabbitmq),事务,springboot,单元测 ...
- EasyDarwin开源流媒体服务器提供的RTMP直播推送库
EasyRTMP EasyRTMP是什么? EasyRTMP是一个EasyDarwin配套使用,也可以单独使用的RTMP推送库,通过EasyRTMP我们就可以避免接触到稍显复杂的RTMP推送流程,只需 ...
- 配置tomcat,访问端口改为80
首先:找到tomcat的的config文件夹下的server.xml文件: 编辑server.xml 保存server.xml文件,重启tomcat服务器,即可. 亲测好使.
- AndroidPageObjectTest_Chained.java
以下代码使用ApiDemos-debug.apk进行测试 //这个脚本用于演示PageFactory的功能:链式注解@AndroidFindBys.@IOSFindBys.具体用法参考页面类的代码. ...
- AndroidDragAndDrop.java
以下代码使用ApiDemos-debug.apk进行测试 package com.saucelabs.appium; import io.appium.java_client.AppiumDriver ...