一,在设备的旋转的时候,发生了什么?

设备旋转时候,当前的activity实例会被系统销毁,然后创建一个新的Activity实例。

接下来我们通过检测Activity的生命周期来观察下:

上面是我启动activity时依次发生的事件,接下来我旋转设备:

可以看到,旋转的时候,第一个activity被destroy掉,之后新的activity被创建。

二,理解设备配置与备选资源

旋转设备会改变设备配置。设备配置是用来描述设备当前状态的一系列特征。这些特征包括:屏幕的方向,屏幕的尺寸,屏幕密度(是一个固定的设备配置,无法在运行时发生改变),键盘类型,底座模式及语言。

只要在应用运行中设备配置发生了变化,安卓就会销毁当前activity,然后再新建一个activity.

三,为设备旋转后使用新布局

如图,在res文件夹下新建layout-land文件夹,在里面新建同名布局文件,那么,当设备转到水平的时候,新创建activity的时候,就会自动使用这个文件夹下的水平布局文件。

四,在设备旋转之前,如何保存当前的临时数据?

类似Web中的刷新,当我刷新后,当前页面的临时数据都被清掉了,比如我当前正在填写一个表单,里面选择了性别女,刷新下,又要重新填写。显然,设备旋转时产生了一个隐性的bug,那么,安卓中如何处理这种保存临时数据的问题呢?

我们可以通过重写onSaveInstanceState方法实现。

首先,在这个方法里面写入要保存的数据:

之后,我们在OnCreate方法里面重新载入数据:

Android——处理设备旋转Activity销毁时临时数据丢失的问题相关推荐

  1. Android开发——异步任务中Activity销毁时的问题

    0.  前言 在Android开发中经常会发生Activity的销毁重建,比如用户长时间接听一个电话后回到APP.在Android开发--Fragment知识整理(二)中我们提到了使用Fragment ...

  2. activity销毁时执行执行方法是_[Android开发 VIII ]销毁一个activity

    销毁一个activity一共有两种方法,一种是按下返回键,就可以销毁当前activity:还有一种方法就是通过代码的方式,Android提供了finish()这个方法,调用这个方法也可以完成销毁一个a ...

  3. 屏幕旋转导致Activity销毁重建,ViewModel是如何恢复数据的

    前言 当屏幕旋转或者切换系统语言时,Activity 生命周期从销毁再重建,但是ViewModel里面的变量值不受到影响,说明ViewModel中的变量在屏幕旋转前进行了存储,在屏幕旋转后又进行了恢复 ...

  4. Android教程 -06 Activity的生命周期

    本篇播客我们重点介绍下如下知识点: 程序启动原理 Activity生命周期 Activity销毁与创建 视频建议采用超清模式观看, 欢迎点击订阅我的优酷 height="498" ...

  5. Android之路-------Activity的详解

    前言 由于接近放假,公司在赶项目所以前段LP比较忙,没什么时间总结和写博客,只是准备睡觉的时候看看书,每天看的不算多,大概10多页左右吧,不过每天坚持如此的话那也是一个庞大的数字. 今天LP的任务完成 ...

  6. android的四大组件及使用场景,Android/四大组件/Activity.md · BoraxZYF/AndroidInterview - Gitee.com...

    ## 四大组件 ## Activity ### Activity 的四种启动模式及使用场景 - standard 标准模式,Activity 的默认启动模式.每次启动一个 Activity 时都会创建 ...

  7. Android 浅谈 Activity (下)

    Android 浅谈 Activity(中) 上节讲了数据传递和数据回传,这节讲一讲状态保存以及启动模式. 在使用Bundle传递数据时,要注意,Bundle的大小是有限制的 < 0.5MB,如 ...

  8. Activity销毁onStop或onDestroy延时10s左右才回调

    好记性不如烂笔头.生活中多做笔记,不仅可以方便自己,还可以方便他人. 前段时间,同事跟我说他遇到一个很奇怪的问题:退出页面,Activity销毁时onStop或onDestroy延时10s左右才回调. ...

  9. Android屏幕旋转时Activity不重新调用onCreate的方法

    2019独角兽企业重金招聘Python工程师标准>>> android屏幕旋转时Activity不重新调用onCreate的方法 当手机转屏时,Activity的onDestroy和 ...

最新文章

  1. 第十四周项目一-排序函数模版
  2. 实验3 linux内存映射,3Linux内存映射,mmap()函数
  3. hosts 持续更新 - laod
  4. .NET混淆器 Dotfuscator使用教程六:加强保护之添加Checks
  5. Python里那些可爱的游戏模块们
  6. String类的使用 Part2
  7. 研究者展示黑客通过GPU绕过防毒软件查杀的方法
  8. 江湖有故人,欢迎来到程序员的江湖
  9. 【PostgreSQL-9.6.3】创建、修改、删除PostgreSQL数据库
  10. jQuery DataTables: How to add a checkbox column
  11. CSS里 @import用法
  12. 在ArcMap离线加载海量卫星影像的方法
  13. python做鼠标自动移动_Python实现鼠标自动在屏幕上随机移动功能
  14. 微信红包封面,你真的领取到了吗?
  15. 活动网络——用顶点表示活动的网络AOV和拓扑
  16. 朋友圈gys是什么意思,女生微信朋友圈说说经典句子
  17. 打印机驱动装上了,却无法正常打印的问题解决方法
  18. 智能家居无线方案ZIGBEE、Z-Wave、WIFI、蓝牙、红外、GPRS以及NB-IOT对比
  19. opencv2413 gpu mog2_gpu CascadeClassifier_GPU
  20. 华为机试---年终奖(动态规划)

热门文章

  1. linux系统中如何安装qwt,在Linux上部署Qt及Qwt
  2. Linux中$PATH详解
  3. excel小写转大写公式_Word如何一键转PPT/Excel,来看看用对的方式操作office有多方便...
  4. 定义一个空切片_全面解读Python高级特性切片
  5. 火线精英手游服务器维护,火线精英手机版登录失败进不去解决办法
  6. 拆装计算机主机,台式计算机的拆装教案.doc
  7. Flink AggOperator 增量聚合函数
  8. pytorch torch.nn.Module.register_buffer
  9. Werkzeug routing
  10. opencv Shi-Tomasi角检测