原生android(二)——认识activity_weixin_30622181的博客-程序员宝宝

技术标签: 移动开发  

一、activity的生命周期

1、onCreate():在活动第一次被创建的时候调用,用来完成活动的初始化操作,如加载布局、绑定事件等

2、onStart():在活动由不可见变为可见时被调用

3、onResume():在活动准备和用户交互的时候被调用。此时的活动一定位于返回栈的栈顶,并且处于运行状态

4、onPause():在系统准备去启动或者恢复另外一个活动的时候调用。在此方法中将一些消耗CPU的资源释放,以及保存一些关键数据,,但这个方法一定要快,不然会影响到新的栈顶活动的使用

5、onStop():在活动完全不可用时被调用。和onPause()的区别在于,如果启动一个对话框式的活动,那么onPause()方法会执行,而onStop()不会执行

6、ondestroy():在活动被销毁之前调用,之后活动的状态将变为销毁态

7、onRestart():在活动由停止状态变为运行状态之前调用,就是活动被重新启动

其关系图如下所示:

 

二、activity的启动模式

1、standard模式:在standard模式下,每当启动一个新的活动,它就会在返回栈中入栈,并处于栈顶的位置。对于使用standard模式的活动,系统不会在乎这个活动是否已经在返回栈中存在,每次启动都会创建该活动的一个实例。

2、singleTop模式:在启动时如果发现返回栈的栈顶已经是该活动,则认为可以直接使用它,不会再创建新的活动实例。不过当活动并未处于栈顶位置时,这时再启动,还是会创建新的实例。

3、singleTask模式:每次启动该类活动时,系统首先会在返回栈中检查是否存在该活动的实例,如果发现已经存在则直接使用该实例,并把在这个活动之上的所有活动统统出栈,如果没有发现就会创建一个新的活动实例

4、singleInstance模式(单例模式):该模式的活动会启用一个新的返回栈来管理这个活动(如果singleTask模式指定了不同的taskAffinity,也会启动一个新的返回栈)。在这种模式下会有一个单独的返回栈来管理这个活动,不管是哪一个应用程序来访问这个活动,都共用同一个返回栈,也就解决了共享活动实例的问题。

 

转载于:https://www.cnblogs.com/pkangping/p/9446458.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30622181/article/details/98826952

智能推荐

iOS UISlider的使用_weixin_30760895的博客-程序员宝宝

  UISlider是一个方便的控件,让用户能够以可视化的方式设置指定范围内的值。  和按钮一样,滑块也能响应事件,还可像文本框一样被读取。如果希望用户对滑块的调整立刻影响应用程序,则需要让他触发操作。  下面将从几个方面学习:   UISlider * slider = [[UISlider alloc]initWithFrame:CGRectMake(10 , 10...

python安装opencv2.4.9_Ubuntu 安装 OpenCV 2.4.9_weixin_39787397的博客-程序员宝宝

OpenCV即 Open Source Computer Vision Library.主要是提供图像处理和视频处理的基础算法库,还涉及一些机器学习的算法。比如你想实现视频的降噪、运动物体的跟踪、目标(比如人脸)的识别这些都是CV的领域.安装的方法可以参见github上的git安装脚本.如果不想取github上看,直接复制保存下面的代码成opencv2_4_9.sh文件.当然,通过下面的脚本,安装...

依靠队列搜索——分支限界法及其应用:最大团问题、货郎问题_最大团建模_My Turn的博客-程序员宝宝

人生是需要做好规划的,就算是混这人生也要混出个名堂出来。全国有大部分人知道考研,但是考出来干什么,走什么的路是真的没有想法。计算机行业涉及到许许多多的领域,所以,大学期间要学计算机专业,一定要做好规划,想做什么才能去学什么。囫囵吞枣只会让你啥也没有学到,说明白点就只是让你明白个大概,而不能明白所以然。所以要定好方向,,将来想干什么,然后在这条路上学懂专业,这样到了社会,才能给你这一席之地。...

数据库——MySQL操作管理—增删改查_IT—INTEREST_挪吒的博客-程序员宝宝

MySQL使用管理工具:Navicat for MySQL 用途:新建用户,新建查询。 例:GRANT ALL PRIVILEGES ON *.* TO "LP"@"%" IDENTIFIED BY "123456" 释:授权 所有 权限 在 所有数据库 的 所有 表 给 从任何地方 登陆的IP 用户 通过 123456密码 MyS...

JS - 实现XML转JSON数据 使用xml2json.js)_kenadc的博客-程序员宝宝

1.到GitHub主页下载库代码下载地址: https://github.com/Kenadc/xml2json.git点击Clone or download下载2.使用页面上将其引用进来<scripttype='text/javascript'src="xml2json.js"></script>3.var _db = "<...

Leap Motion+EasyAR AR手势识别开发教程_AIRX三次方的博客-程序员宝宝

AR开发者交流群:605785368AR开发者社区:今天给大家带来用Leap Motion(本想用Usens Fingo来开发,原谅我没搞到其sdk)和视辰家的EasyAR SDK来开发一款手势识别的AR 应用,请看Demo演示。Demo演示第一步:导入Leap Motion SDK到Lea

随便推点

《我在风衣里藏了把刀》—— 转_banyu8207的博客-程序员宝宝

那天,我在风衣里藏了把刀,因为我要杀掉一个仇人。我非常恨她,但又不敢骂她,所以我只好选择谋杀。她的个子不高,却是武校的高才生,我估计空手打不过她,所以得藏把刀。她很漂亮,但从来都不看我一眼,所以我非常恨她,所以我要谋杀了她。我不能在她的学校谋杀她,因为武校里的孩子们都很能打,杀过人以後我担心不能全身而退;我也不能在她家里谋杀她,因为她跟我不熟,所以肯定不会为我开门...

Android TextView属性设置大全_帅次的博客-程序员宝宝

TextView文字底部或者中间 加横线;TextView内容单行或者多行显示;TextView内容过长加省略号,点击显示全部内容;文字展开和收缩;同一TextView设置背景色圆角;同一TextView设置不同字体大小;工具类:分辨率dp和px相互转换;代码添加控件并设置Padding;

晋南讲堂之Spring—(十二)AOP_晋南散人的博客-程序员宝宝

  下面以打印日志来举一个例子,新建如下的接口和类:其中ArithmeticCaculator.java接口代码如下:package com.spring.aop.helloworld;public interface ArithmeticCaculator { int add(int i,int j); int sub(int i,int j); int multiply(int...

使用Navicat for Oracle新建表设置序列和触发器_艾派儿的博客-程序员宝宝

首先连接上服务器登录用户在模式中找到自己的项目然后新建表:建完表后要设置序列和触发器,oracle没有自增的:在查询—>新建查询里面写sql语句进行创建:语句参考如下:----创建序列create sequence ZHAOPIN_MESSAGE_seq minvalue 1 maxvalue 99999999 increment by 1 ...

五线电阻触摸屏的工作原理 _五线电阻屏 隔离_林伟的博客-程序员宝宝

在触摸屏的四个端点RT,RB,LT,LB四个顶点,均加入一个均匀电场,使其下层(氧化铟)ITO GLASS上布满一个均匀电压,上层为收接讯号装置,当笔或手指按压外表上任一点时,在手指按压处,控制器侦测到电阻产生变化,进而改变坐标。由于靠压力感应,所以对于触控媒介没有限制手、铅笔,信用卡等,即使戴上手套亦可操作。触摸屏技术都是依靠控制器来工作的,甚至有的触摸屏本身就是一套控制器,各自的定位原理和各自

计算机软件编程招聘考试题目,2019中国工商银行招聘模拟试题及答案:计算机习题..._Peter 王广忠的博客-程序员宝宝

【导语】银行考试综合部分主要会涉及以下几个方面,包括:经济学、国际金融、货币银行、会计基础、管理学、市场营销、经济法、计算机基础、时事政治。无忧考网为大家整理的《2019中国工商银行招聘模拟试题及答案:计算机习题》,希望对大家有所帮助!1.下列各选项中,全部为应用软件的是()。A.网卡和驱动程序、Windows操作系统、QQ聊天软件B.媒体播放软件、360杀毒软件、编译程序C.Office办公软件...

推荐文章

热门文章

相关标签