Android相关面试题---初识
一 、Activity的生命周期
Android是使用任务(Task)来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称为返回栈(Back Stack)。每当我们启动一个新的活动,它会在返回栈中入栈,并处于栈顶位置。当我们按下back键或调用finish方法去销毁一个活动时,处于栈顶的活动会出栈,这时前一个入栈的活动会重新处于栈顶。系统总是会显示处于栈顶的活动给用户。
Activity的四种状态
1 运行状态
当一个活动处于返回栈的栈顶时,就处于活动状态。
2 暂停状态
当一个活动不再处于栈顶,但是仍然可见时,活动就进入了暂停状态。
3 停止状态
当一个活动不再处于栈顶位置,并且完全不可见的时候,就处于停止状态。
4 销毁状态
当一个活动从返回栈中移除,就变成了销毁状态。
Activity中定义了7个回调方法,覆盖了活动的生命周期每一个环节。
1 onCreate 此方法会在第一次创建活动时调用,应该在里面完成初始化操作,如加载布局等等。
2 onStart 这个方法在活动由不可见变为可见时调用
3 onResume 这个方法在活动准备好和用户交互时调用,此时活动一定处于栈顶,并处于运行状态。
4 onPause 这个方法在活动准备启动或恢复另一个活动时调用。
5 onStop 这个方法在活动变为完全不可见时调用
6 onDestroy 这个方法在活动被销毁前调用,之后活动状态变为销毁。
7 onRestart 这个方法在活动由停止状态变为运行状态之前调用,也就是活动被重新启动了。
活动在onCreate和onDestroy方法之间经历的叫做完整生存期。
活动在onStart和onStop之间经历的叫可见生存期
活动在onResume和onPause方法之间经历的叫前台生存期
二、Activity的启动模式。
活动的启动模式一共有四种,分别是standard,singleTop,singleTask和singleInstance。可以在AndroidManifest.xml文件中通过给activity标签指定launchMode来设置。
1 standard 模式
此模式是activity的默认启动模式。此模式下每启动一个活动,都会在返回栈中入栈,并处于栈顶位置。使用此模式的活动,当需要创建时,系统不会检查之前是否创建过,每次都创建一个新的。
2 singleTop 模式
此模式下,当系统发现活动已经在栈顶,创建一个新活动时,就会直接用栈顶的活动。但是当活动不处于栈顶时,创建时仍然会创建新的活动实例。
3 singleTask 模式
使用此模式可以很好地解决反复创建的问题。但是此模式使用时需要注意,当活动不处于栈顶时,再次创建活动时会直接将活动推至栈顶,并且将此活动之上的所有活动出栈。
4 singleInstance 模式
此模式不同于以往三个模式。此模式下会启用一个新的返回栈来管理这个活动。此模式可以用于其他程序相与当前程序共享这个活动实例时使用。
上述转载来自:https://blog.csdn.net/Kongou/article/details/80465577
Android相关面试题---初识的更多相关文章
- Android相关面试题---面试官常问问题
版权声明:本文为寻梦-finddreams原创文章,请关注: http://blog.csdn.net/finddreams/article/details/44513579 一般的面试流程是笔试完就 ...
- Android动画效果之初识Property Animation(属性动画)
前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Andr ...
- Android图片缓存之初识Glide
前言: 前面总结学习了图片的使用以及Lru算法,今天来学习一下比较优秀的图片缓存开源框架.技术本身就要不断的更迭,从最初的自己使用SoftReference实现自己的图片缓存,到后来做电商项目自己的实 ...
- Android开发面试经——4.常见Android进阶笔试题(更新中...)
Android开发(29) 版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http:/ ...
- 安卓高级 Android图片缓存之初识Glide
前言: 前面总结学习了图片的使用以及Lru算法,今天来学习一下比较优秀的图片缓存开源框架.技术本身就要不断的更迭,从最初的自己使用SoftReference实现自己的图片缓存,到后来做电商项目自己的实 ...
- Android&Java面试题大全—金九银十面试必备
声明本文由作者:Man不经心授权转载,转载请联系原文作者原文链接:https://www.jianshu.com/p/375ad14096b3, 类加载过程 Java 中类加载分为 3 个步骤:加载. ...
- 【Android】一道Android OpenGL笔试题
一道Android OpenGL笔试题 SkySeraph May. 5th 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点:www.sky ...
- 二、Android学习第二天——初识Activity(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 一. Android学习第二天——初识Activity 昨天程序搭建成功以 ...
- C# 相关面试试题简单的总结
最近一个搞NET开发的朋友离职了,想让我给他找点关于NET的相关面试题,准备抱一下佛脚,迎接新的挑战. 我赶紧找到以前检索的各种宝典,试题,今天梳理一下关于NET的基础知识点. 1.面向对象语言的三大 ...
随机推荐
- java学习入门之---使用idea创建第一个maven项目
一.准备条件: 1.安装idea旗舰版 2.安装tomcat 二.打开idea开始创建 1.创建Project 2.选择项目类型为maven 3.输入组名和项目名 ---> 下一步 ----&g ...
- android等待对话框
等待对话框,这里有两种方式来实现: ProgressDialog方式 progressDialog初始化 private void initProgressDialog() { progressDia ...
- [kuangbin带你飞]专题二十二 区间DP----POJ - 2955
区间DP标准入门题目. 区间DP大概思路是这样的. 第一层枚举长度,因为我们需要从小区间一步步推到大区间 第二层枚举左端点,那么右端点就定了. 第三层枚举间断点,由间断点合并得到大区间. 这道括号匹配 ...
- Python 原生协程------asyncio
协程 在python3.5以前,写成的实现都是通过生成器的yield from原理实现的, 这样实现的缺点是代码看起来会很乱,于是3.5版本之后python实现了原生的协程,并且引入了async和aw ...
- vscode 安装插件SVN 报vscode SVN not found
1.软件环境 svn客户端安装的是TortoiseSVN: vscode 安装的为SVN的插件: 2. 问题现象 vscode打开文件夹后右下角提示如下报错:SVN not found. Instal ...
- [转帖]Windows7/2008中批量删除隧道适配器的方法
https://www.jb51.net/os/windows/479838.html 客户现场的硬件信息总是发生变化 这里查找一下资料 尝试一下. 1.在网卡属性的“网络”中,将“Internet协 ...
- POJ 1915 Knight Moves
POJ 1915 Knight Moves Knight Moves Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 29 ...
- React Native & Android & iOS & APK
React Native & Android & iOS & APK https://play.google.com/apps/publish/signup/ $ 25 bui ...
- day13
今日所学 1,函数的嵌套定义 2,globe nonlocal关键字 3,闭包及闭包的运用场景 4,装饰器 函数的嵌套: 在一个函数的内部定义另一个函数 1,函数2想直接使用1函数的局部变量,可以 ...
- mapper.xml 的配置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "- ...