一 、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

转载于:https://www.cnblogs.com/hjylxh/p/10724423.html

Android相关面试题---初识相关推荐

  1. android广播面试题,Android相关面试题

    面试过程中遇到的题集,都会摘要记录下来 一,Java部分 1.什么是反射? 2.反射的实现原理是什么? 3.Java线程sleep join yield wait notify notifyAll 4 ...

  2. Android相关面试题

    目录 1.SharedPreferences是线程安全的吗?它的commit()方法和apply()方法有什么区别?它有什么缺点?有没有类似更好的方案?<

  3. Kotlin相关面试题

    目录 一.请简述下什么是kotlin?它有什么特性? 二.密封类与枚举的区别? 三.Kotlin 中注解 @JvmOverloads 的作用? 四.Kotlin中的MutableList与List有什 ...

  4. Android性能优化面试题,与性能优化相关面试题 - 与IPC机制相关面试题 - 《Android面试宝典》 - 书栈网 · BookStack...

    源码分析相关面试题 Activity相关面试题 与XMPP相关面试题 与性能优化相关面试题 与登录相关面试题 与开发相关面试题 与人事相关面试题 与人事相关面试题现在三四月份,金三银四最好找工作时间, ...

  5. 关于android相关开发资料的整理

    权限 适配Android6.0动态权限管理 FcPermissions:也许是目前最好的动态权限请求库 Android 开发技巧 - Android 6.0 以上权限大坑和权限检查基类封装 Andro ...

  6. android开发面试题!微信小程序趋势及前景,社招面试心得

    没有稳定的工作,只有稳定的能力. 又到了万物复苏的季节,在程序猿这个行当里,作为 Android 开发出生的,在经历了八年的脱发生涯后,有了越来越多的想法和感触 趋势 随着各类移动跨平台的兴起,在 R ...

  7. Android 最全面试题汇总(问题+答案+详解链接)

    大厂的Android面试一般不简单,基本都会涉及Java.算法,当然也移不开Android的题目. 本文主要涉及Android相关的问题,之后我会陆续公布Java,以及算法的相关面试题总结. 目录 一 ...

  8. 超级准确的Android/JAVA面试题合集,背会你就10k!

    原文转自:点击打开链接 欢迎访问 我的个人博客 Android常见的问题 常见算法问题的 Java 实现 资料可见 算法介绍可见 算法是很多公司面试必须,国内 BAT 基本面试中都会有,尤以百度为盛. ...

  9. 秋招Android常见笔试题合集--Binrry(冰蕊)

    阅文集团笔试题 单选题 数组初始化 给定如下代码:int x[4]={0};int y[4]={1};数组x和y的值为: {0,0,0,0},{1,0,0,0} 十进制30转换成十六进制数是: 1E ...

最新文章

  1. 【linux】ARM开发板上设置RTC时间,断电重启后,设置失效的原因分析
  2. 总结2021面试中的常见14种算法套路
  3. Java笔记--实时更新
  4. r语言模型评估:_情感分析评估:对自然语言处理的过去和未来的反思
  5. 关于varchar2在pl/sql和schema级别的最大值
  6. 肖仰华 | 基于知识图谱的用户理解
  7. C语言之设计模式——单例模式
  8. 网络基础知识(面试基础)
  9. Convert Sorted Array to Binary Search Tree(将有序数组转为二叉搜索树)
  10. .java和.class的区别_Java中class与Class有什么区别
  11. 简述神经网络学习过程
  12. 第三方浏览器内核嵌入一、Crosswalk
  13. 二进制数的补码及运算
  14. 泛型指的是什么?有什么作用?
  15. 实验室常用培养基配置 LB LA
  16. 啧啧啧。。。加壳失败
  17. window下命令查看cup和内存型号信息
  18. 51单片机之点阵、矩阵键盘
  19. IP地址分类(ABCDE)
  20. 苹果手机充电口接触不良怎么办_充电口盖子打不开、充电枪拔不下来怎么办?...

热门文章

  1. WebView的截屏实现
  2. hdfs.DFSClient: Exception in createBlockOutputStre
  3. iptables中state模块的连接状态
  4. ThinkPHP的安装
  5. 445 - Marvelous Mazes
  6. Android的Activity屏幕切换动画(一)-左右滑动切换
  7. 在安装完成oracle的时候,需要su - oracle,但有时候出现ulimit pize...
  8. 关于MySQL redo log,挖些坑,慢慢填
  9. App小样在手机运行了一下
  10. Binder相关面试总结(五):为什么Activity间传递对象需要序列化