首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
dialog
xml
build
crash
eclipse
apk
android
webview
android-studio
json
java
phonegap
当前位置:
开发笔记
>
Android
> 正文
android横竖屏切换时候Activity的生命周期
作者:叶子已经不是木头的了 | 来源:互联网 | 2022-05-08 20:20
曾经遇到过一个面试题,让你写出横屏切换竖屏Activity的生命周期。现在给大家分析一下他切换时具体的生命周期是怎么样的
1、新建一个Activity,并把各个生命周期打印出来
2、运行Activity,得到如下信息
onCreate-->
onStart-->
onResume-->
3、按crtl+f12切换成横屏时
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
4、再按crtl+f12切换成竖屏时,发现打印了两次相同的log
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
5、修改AndroidManifest.xml,把该Activity添加
android:cOnfigChanges="orientation",执行步骤3
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
6、再执行步骤4,发现不会再打印相同信息,但多打印了一行onConfigChanged
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
onConfigurationChanged-->
7、把步骤5的android:cOnfigChanges="orientation" 改成
android:cOnfigChanges="orientation|keyboardHidden",执行步骤3,就只打印
onConfigChanged
onConfigurationChanged-->
8、执行步骤4
onConfigurationChanged-->
onConfigurationChanged-->
总结:
1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,
切横屏时会执行一次,切竖屏时会执行两次
2、设置Activity的android:cOnfigChanges="orientation"时,切屏还是会重新调
用各个生命周期,切横、竖屏时只会执行一次
3、设置Activity的android:cOnfigChanges="orientation|keyboardHidden"时,
切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法
总结一下整个Activity的生命周期
补充一点,当前Activity产生事件弹出Toast和AlertDialog的时候Activity的生命
周期不会有改变
Activity运行时按下HOME键(跟被完全覆盖是一样的):onSaveInstanceState -->
onPause --> onStop onRestart -->onStart--->onResume
Activity未被完全覆盖只是失去焦点:onPause--->onResume
android
xml
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
android
Android的四种启动模式
对Android的启动模式不是很了解,这里记录下简单的理解内容以便日后查看。 Androi的四种启动模式分别为:standard,singleTop,singleTask,sing ...
[详细]
蜡笔小新 2024-09-29 16:20:47
android
MyBatis模糊查询和多条件查询
MyBatis模糊查询和多条件查询一、ISmbmsUserDao层根据姓名模糊查询publicListgetUser();多条件查询publicList ...
[详细]
蜡笔小新 2024-09-30 13:26:10
android
contentProvider的使用总结
一、使用ContentProvider(内容提供者)共享数据ContentProvider在android中的作用是对外共享数据,也就是说 ...
[详细]
蜡笔小新 2024-09-29 13:49:00
android
Xamarin.Android-用ZXing实现二维码扫描以及连续扫描
一、前言本文的内容有两个基础:ZXing.Net和ZXing.Net.MobileZXing.Net:ZXing的C#实现,主要封装了各种二维码的编码、解码等跨平台的算法ZXing.Net.Mo ...
[详细]
蜡笔小新 2024-09-30 23:22:18
xml
SQLSERVER数据处理 刷新组织层级
–声明变量DECLAREBuCodeASvarchar(max)–声明游标DECLAREC_EmployeesCURSORFAST_FORWARDFORSELECTBUCodeFR ...
[详细]
蜡笔小新 2024-09-30 10:08:21
xml
wsimport“无法解析名称...”
wsimport“ ...
[详细]
蜡笔小新 2024-09-29 19:47:31
xml
开放PLM——Aras Innovator编程学习(二)AML脚本组成
一、基本Tag1.Tag定义了Item实例,有三个基本的属性来定义一个item实例,大小写敏感。id-每个Item实例的唯一标识type ...
[详细]
蜡笔小新 2024-09-29 17:57:33
java
Java发布webservice应用并发送SOAP请求调用
webservice框架有很多,比如axis、axis2、cxf、xFire等等,做服务端和做客户端都可行,个人感觉使用这些框架的好处是减少了对于接口信息的解析,最主要的是减少了对于传递于网络中XML ...
[详细]
蜡笔小新 2024-09-29 16:46:39
xml
Flex中使用filter过滤数据
Flex中使用filter过滤数据 ...
[详细]
蜡笔小新 2024-09-29 14:51:58
java
intellij idea修改maven配置时总是恢复默认配置的解决方法idea版本(2020.2.x)_java
这篇文章主要介绍了intellijidea修改maven配置时总是恢复默认配置的解决方法idea版本(2020.2.x),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考 ...
[详细]
蜡笔小新 2024-09-29 14:51:40
json
大数据分析Python有哪些爬虫框架
一、ScrapyScrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。。用 ...
[详细]
蜡笔小新 2024-09-29 13:04:13
xml
nvmw安装,用于控制node版本;
之前一直使用的是nodev2.2.0版本,挺说新版本的node解决了npm安装插件产生文件夹结构过深的问题,所以就想更新试试;上网一看才发现,尼玛的node已经到了6.+版本了,好 ...
[详细]
蜡笔小新 2024-09-29 12:25:49
java
hibernate映射组件映射
在Hibernate中,component是某个实体的逻辑组成部分,它与实体的根本区别是没有oid(对象标识符),compo ...
[详细]
蜡笔小新 2024-09-29 04:21:38
build
在ROS中处理yaml文件
在ROS系统中,参数读写一般通过xml或者yaml格式的文件,其中yaml用得比较多。这是一种可读性高,轻量级的标记语言,简单好用。对于yaml文件,ros中用的较早版本的yaml- ...
[详细]
蜡笔小新 2024-09-29 00:37:59
xml
如何理解MyBatis动态SQL
本篇内容主要讲解“如何理解MyBatis动态SQL”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解M ...
[详细]
蜡笔小新 2024-09-28 19:47:48
叶子已经不是木头的了
这个家伙很懒,什么也没留下!
Tags | 热门标签
dialog
xml
build
crash
eclipse
apk
android
webview
android-studio
json
java
phonegap
RankList | 热门文章
1
解决vue项目获取dom元素宽高总是不准确问题
2
解决vue cli4升级sass-loader(v8)后报错问题
3
Vue通过Blob对象实现导出Excel功能示例代码
4
浅谈vue中使用编辑器vue-quill-editor踩过的坑
5
基于vue 动态菜单 刷新空白问题的解决
6
Vue自定义全局弹窗组件操作
7
vue-cli打包后本地运行dist文件中的index.html操作
8
vue项目接口域名动态获取操作
9
链接悬停时的动画图标
10
js实现拖拽元素选择和删除
11
为什么说“我们不能包含limits.h!” 在dirent.h中?
12
调整包裹在div中的div中包裹的svg的大小
13
vue 动态给每个页面添加title、关键词和描述的方法
14
vue路由切换时取消之前的所有请求操作
15
Vue自定义多选组件使用详解
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有