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.面向对象语言的三大 ...
随机推荐
- 基于GPS数据建立隐式马尔可夫模型预测目的地
<Trip destination prediction based on multi-day GPS data>是一篇在2019年,由吉林交通大学团队发表在elsevier期刊上的一篇论 ...
- torm入门(三)HelloWorld示例
一.配置开发环境 storm有两种操作模式: 本地模式和远程模式.使用本地模式的时候,你可以在你的本地机器上开发测试你的topology, 一切都在你的本地机器上模拟出来; 用远程模式的时候你提交的t ...
- vue笔记未整理
全局组件 局部组件 子组件传值到父组件 父子组件传值 watch跟计算属性差不多,都会有缓存,计算属性优先 计算属性get set 对象 数组 对象 数组 不复用 改变数组 直接修改数组,页面没变化 ...
- shell 编程初级
shell编程的简单代码 一些基础代码 直接上代码 #!/bin/bash myUrl="gggggggg" # 只读变量设置 # readonly myUrl echo &quo ...
- RabbitMQ使用时注意的一些问题
一.前言 上篇RabbitMQ的博文居然上了推荐,效果很不错,接下来我们就来聊聊我们RabbitMQ的方案,先谈方案,代码等等后面补上,感觉不错给我点点关注,点点
- 用div画三角/矩形/圆
1. 画三角 <!DOCTYPE html> <html> <head> <title></title> <meta charset= ...
- Python协程的引入与原理分析
相关概念 并发:指一个时间段内,有几个程序在同一个cpu上运行,但是任意时刻只有一个程序在cpu上运行.比如说在一秒内cpu切换了100个进程,就可以认为cpu的并发是100. 并行:值任意时刻点上, ...
- 完全自主创建Wrapper Tomcat容器
Wrapper Tomcat 使用说明1. Wrapper Tomcat 简介1) Wrapper Tomcat 是使用Apache Tomcat 整合 Java Service Wrapper 的一 ...
- [转帖]御界预警:3700余台SQL服务器被入侵挖矿 或导致严重信息泄露事件
御界预警:3700余台SQL服务器被入侵挖矿 或导致严重信息泄露事件 https://zhuanlan.kanxue.com/article-8292.htm sqlserver的弱密码破解和提权攻击 ...
- golang异常处理
一.使用defer+recover 错误例子: [root@localhostgo_test]#cat t1.go package main func main(){ panic(1) } [root ...