Android非正常结束时的生命周期_csdn_Mew的博客-程序员秘密

技术标签: Android生命周期  

正常的Activity的生命周期中,当在一个oldActivity中启动一个新的newActivity时,先调用oldActivity的onPause方法,然后调用newActivity的onCreate-->onStart-->onResume,执行这三个方法之后,才开始执行oldActivity的onStop方法,所以在oldActivity的onPause方法中,不能进行耗时操作

1.第一种情况,资源相关的系统配置发生改变导致Activity被杀死并重新创建

Activity-->意外情况-->onSaveInstanceState-->onPause-->onStop-->onDestroy

重新启动时调用-->onCreate-->onStart-->onRestoreInstanceState,这两个方法中的savedInstanceState参数即保留这上次意外停止时的信息,

 

2.第二种情况,系统内存不足导致低优先级的Activity被杀死

低优先级的Activity会在内存不足时被杀死

优先级高:正在前台且可见的Activity

优先级中:不在前台,但是可见的Activity(如在Activity中弹出弹窗)

优先级低:不在前台不可见

 

需要注意的是onSaveInstanceState只有在非正常退出才会执行,且执行后再重启onRestoreInstanceState的参数一定有值,而onCreate的参数在首次启动时是没有值的,所以如果在onCreate中恢复数据时需要判空,官方建议在onRestoreInstanceState方法中恢复数据

 

 

第一种情况下,如果不想销毁Activity重新创建,则需要制定configChanges属性.常用的有:

locale:设备本地位置发生了改变,一般指切换了系统语言

orientation:屏幕方向发生了改变

keyboardHidden:键盘的可访问性放生了改变,比如用户调出了键盘

screenSize:屏幕尺寸发生了改变,当旋转屏幕时,屏幕尺寸也会发生改变,当编译选项中的minSdkVersion和tarSdkVersion都低于13时,此选项不会导致Activity重启,否则会导致Activity重启

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

智能推荐

Python常用库大全,看看有没有你需要的_少杰家的猫的博客-程序员秘密

环境管理管理 Python 版本和环境的工具p – 非常简单的交互式 python 版本管理工具。pyenv – 简单的 Python 版本管理工具。Vex – 可以在虚拟环境中执行命令。virtualenv – 创建独立 Python 环境的工具。virtualenvwrapper- virtualenv 的一组扩展。包管理管理包和依赖的工具。pip – Python 包和依赖...

aix 5L安装oracle 10g之前的安装程序_bayaci的博客-程序员秘密

 安装之前查看# lslpp -l bos.adt.base bos.adt.lib bos.adt.libm bos.perf.perfstat bos.perf.libperfstat bos.perf.proctools bos.adt.prof bos.cifs_fs.rte  Fileset                      Level  State      Descrip

程序员入职苏宁,其女友吐槽还不如单身,一周都话说不上几句_苏宁应届程序员_weixin_43030648的博客-程序员秘密

互联网公司都离不开程序员,有人曾经夸张地说过,给我一个程序员我就能开一个互联网公司,看起来这说的有点夸张,但是确实在互联网行业你有一个好的创意,并且能够招到一个好的程序员,并且找到一个出色的程序员,就能简单勾勒出一个原始产品,然后把产品展示给投资人看,也许就能吸引大笔投资,也许就是下个独角兽。从上面看出程序员当下是很吃香的,但是也有辛苦的一面,就有一名女网友发帖称:程序员老公入职苏宁两个月了,...

今天踩了一个基础坑_编程三昧的博客-程序员秘密

打铁还需自身硬,别看别人的实现方式有多高大上,其实都是基础知识的一些合理组合使用的结果而已,只要你基础够好,那即使面对一段简简单单的代码也能玩出不一样的花样!

【CV】基于DnCNN的图像和视频去噪_风度78的博客-程序员秘密

简介随着数字图像数量的增加,对高质量的图像需求也在增加。然而,现代相机拍摄的图像会因噪声而退化。图像中的噪声是图像中颜色信息的失真,噪声是指数字失真。当在夜间拍摄时,图像变得更嘈杂。该案例研究试图建立一个预测模型,该模型将带噪图像作为输入并输出去噪后的图像。深度学习的使用这个问题是基于计算机视觉的,CNN等深度学习技术的进步已经能够在图像去噪方面提供最先进的性能,用于执行...

shell编程概念介绍及变量定义--关于脚本运行与shell进程之间的关系_diqu8498的博客-程序员秘密

shell是用户与内核进行交互操作的一种接口,目前最流行的shell称为bash shellshell也是一门编程语言<解释型的编程语言>,即shell脚本<就是用 linux 的 shell 命令编程>一个系统可以存在多个shell,可以通过 cat/etc/shells 命令查看系统中安装的shell,不同的shell 可能支持的命令语法是不相同的...

随便推点

从明面上学习ASP.NET Core_weixin_30876945的博客-程序员秘密

一、前言 这篇文章就是从能看到地方去学习Core,没有很深奥,也没有很难懂,现在我们开始吧。二、构建项目,引发思考 创建项目的步骤真的很简单,你要是不会,我真也没法了,我这是创建的MVC的项目。 接下来我们开始找不同,这个小学生也会的东西,我相信也难不到大家,这里我们主要说重点的不同: 1. 少了Content和Scripts文件...

分布式与云计算作业三——LINUX安装MPICH +并行奇偶交换排序_丑桔子的博客-程序员秘密

(写来骗浏览量访问量的,没什么技术含量)环境配置:1.gcc g++ gdb1.1检查是否安装:which gccwhich g++which gdb能查到说明有1.2安装教程:(我因为之前就安好了所以没有靠谱的教程,但是网上有大把)2.安装mpich2.1: 下载链接:http://www.mpich.org/static/downloads/3....

神经网络专题 (一) 感知器_感知神经网络_磨牙的小朋友的博客-程序员秘密

人工神经网络,简称神经网络,它是一种算法,来源是模拟人的生物神经元工作机制。其实不需要去详细了解生物神经网络的细节原理,大概知道些关键名词即可,对以后神经网络的理解没什么影响。神经网络算法的主要功能是预测、分类、识别。神经网络有:感知器、线性神经网络、BP神经网络、RBF神经网络、Hopfield神经网络、CNN卷积神经网络等。感知器是最简单的神经网络,线性神经网络在线性处理上很有用,BP神经网络...

BP神经网络原理与应用-基于电影评分预测案例_先不要昵称的博客-程序员秘密

BP神经网络背景BP神经网络(Back Propagation Neutral Network)是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP神经网络使用最速下降法,通过反向传播不断调整网络的权值和阈值,是网络的误差平方和最小,从而实现模式识别等功能。 BP神经网络组成的结构包括有输入层、

RSS网络爬虫的时间规则_Ackarlix的博客-程序员秘密

RSS网络爬虫的时间规则 整理:Ackarlix挨踢网【中文IT技术社区】http://www.aitic.net RSS的网络爬虫的时间规则的设置: 设定RSS爬虫重新访问的5个级别: Level[1]=20 MinutesLevel[2]=200 MinutesLevel[3]=1000 MinutesLevel[4]=2000 Minutes

CFLAGS、CXXFLAGS、LDFLAGS与LIBS_cxxflags_append_风界的博客-程序员秘密

CFLAGS、CXXFLAGS、LDFLAGS与LIBSCFLAGS 表示用于 C 编译器的选项,CXXFLAGS 表示用于 C++ 编译器的选项。这两个变量实际上涵盖了编译和汇编两个步骤。CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。同样地,安装一个包时会在安装路径下建立一个include目录,当安装过程中出...