问题原因:

在设置中修改显示大小,APP需要重新刷新界面,app是作为一种异常走的onDestroy()方法,并不是正常的按返回键进行的退出执行的onDestroy(),这个时候系统会自动在onSaveInstanceState()方法里面临时性的保存之前的界面状态或者变量信息,方便在onCreate()的时候,从bundle里面直接取出来使用。但是毕竟是异常的状态,有些实体的信息或者fragment堆栈的状态恢复的时候就有可能错乱,导致显示效果出错或者crash。

解决办法:复写onSaveInstanceState()方法,去掉其中的保存super.onSaveInstanceState(savedInstanceState);代码,防止恢复出错。

方法一:

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
} 

方法二:如果数据必须保存有用:

public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.main);//状态 判断if (savedInstanceState != null) {Log.d("HELLO", "HELLO:应用进程被回收后,状态恢复");String string = savedInstanceState.getString("username");if (string != null) {Log.d("HELLO", "HELLO:" + string);}}}/*** 当某个activity变得“容易”被系统销毁时,该activity的onSaveInstanceState就会被执行,* 除非该activity是被用户主动销毁的,例如当用户按BACK键的时候* 一个原则:即当系统“未经你许可”时销毁了你的activity,则onSaveInstanceState会被系统调用* 情景:* 1. 当用户按下HOME键时* 2. 长按HOME键,选择运行其他的程序时。* 3. 按下电源按键(关闭屏幕显示)时。* 4. 从activity A中启动一个新的activity时。* 5. 屏幕方向切换时,例如从竖屏切换到横屏时。* 以上情景触发该函数,并且开发者可以保存一些数据状态*/@Override   public void onSaveInstanceState(Bundle savedInstanceState) {   Log.d("HELLO", "HELLO:当Activity被销毁的时候,不是用户主动按back销毁,例如按了home键");super.onSaveInstanceState(savedInstanceState);  savedInstanceState.putString("username", "initphp"); //这里保存一个用户名}   /*** onSaveInstanceState方法和onRestoreInstanceState方法“不一定”是成对的被调用的,* onRestoreInstanceState被调用的前提是,* activity A“确实”被系统销毁了,而如果仅仅是停留在有这种可能性的情况下,* 则该方法不会被调用,例如,当正在显示activity A的时候,用户按下HOME键回到主界面,* 然后用户紧接着又返回到activity A,这种情况下activity A一般不会因为内存的原因被系统销毁,* 故activity A的onRestoreInstanceState方法不会被执行*/@Override   public void onRestoreInstanceState(Bundle savedInstanceState) {   super.onRestoreInstanceState(savedInstanceState); Log.d("HELLO", "HELLO:如果应用进程被系统咔嚓,则再次打开应用的时候会进入");}
}

Android--设置显示大小导致APP crash相关推荐

  1. h5 android 字体设置,解决因为手机设置字体大小导致h5页面在webview中变形的BUG

    解决因为手机设置字体大小导致h5页面在webview中变形的BUG 首先,我们做了一个H5页面,在各种手机浏览器中打开都没问题.我们采用了rem单位进行布局,通过JS来动态计算网页的视窗宽度,动态设置 ...

  2. Android设置显示语言

    Android设置显示语言 本文主要记录UI适配遇到的快捷方法. 需要适配俄文显示,但是系统不支持选择语言,自己设置. private void setLanguage(String lang) {S ...

  3. 字体用sp android,Android设置字体大小, 该用sp还是dp?

    Android设置字体大小, 该用sp还是dp? 大部分人肯定脱口而出, 用sp啊, 傻瓜都知道要用sp而不是dp!!! 那么为什么呢? 可能有人会说, 是google官方专门定义了sp这个单位来描述 ...

  4. android 设置字体大小不随系统大小变化,App字体大小不随系统改变而改变

    在 "设置" , "显示" , "字体大小" 里面我们可以设置系统字体大小 App界面字体,如果被修改之后,可能就达不到理想状态的效果,界面 ...

  5. android 设置字体大小和不同颜色,Android代码中设置字体大小,字体颜色,显示两种颜色.倒计时效果...

    Android代码中设置字体大小,字体颜色,显示两种颜色 在xml文件中字体大小用的像素 android:id="@+id/uppaid_time" android:layout_ ...

  6. android设置文本大小属性,TextView文本属性设置

    在Android中,TextView是我们最常用的用来显示文本的控件. 一般情况下,TextView中的文本都是一个样式.那么如何对于TextView中各个部分的文本来设置字体,大小,颜色,样式,以及 ...

  7. android 设置文字大小控件

    自定义设置文字大小控件 1.效果图 2.自定义文字设置控件 public class TextSizeSelector extends View {private int margingLeft;pr ...

  8. android 自定义文字位置,Android设置显示文本

    如果不设置singleLine或者设置为false,文本将自动换行, android:text设置显示文本. android:textAppearance设置文字外观.如 "android: ...

  9. android 设置画布大小设置,设置画布大小 - Android

    我想保持画布位图的大小相同,因为当我将自定义视图添加到LinearLayout时显示具有不同大小的画布,并且想要将画布的大小设置为位图对象.代码设置画布大小 - Android 部分: public ...

  10. android 设置视频大小,android – 调整视频大小

    我正在尝试动态设置 Android VideoView的大小.我看过StackOverflow以及互联网;我找到的最佳解决方案是从 here开始.我已经将我的实现放在下面: public class ...

最新文章

  1. go var type 互转_Go语言学习笔记(第九章) 结构体
  2. 实现wordpress的首页文章摘要!
  3. 从html到pug模板,将变量从html-webpack-plugin传递到pug模板
  4. 学习和使用web标准的十大理由
  5. Ranger-Kafka插件安装
  6. mysql using btree_mysql 索引中的USING BTREE 的意义
  7. 深入理解Core Data
  8. HPU--1091 N!的位数
  9. 《linux核心应用命令速查》连载六:batch:在系统负载水平允许的时候执行命令
  10. 微信小程序选项卡切换
  11. 统计学中p值计算公式_统计学中的P值如何计算?
  12. linux 下的字体引擎(xtt freetype xfs xft)
  13. 模式识别技术是人工智能的基础技术,模式识别技术的发展潜力
  14. 建筑工地人脸识别门禁通道闸机如何安装 1
  15. 第四战:“合纵”与“连横”(“战国纵横家书”辨别修订版)诸子百家走四方的美好时代
  16. 做摄像双机位直播(多机位直播)的整个流程的介绍
  17. 关于 ONLYOFFICE 的安卓 Android 手机版
  18. VR购物丨抢占电商流量新阵地
  19. adb进入recovery 以及fastboot模式
  20. k8s tfjob批调度-volcano调研

热门文章

  1. 深度分析DD哪些数据会引起国安注意?
  2. android语音识别sdk接入收费吗,百度语音识别开放平台SDK使用方法
  3. Hadoop安装snappy(编译源码)
  4. NVMe 2.0 Telemetry
  5. SSM整合(idear)
  6. 如何用csdn上传资源
  7. 如何在线绘制简单又漂亮的思维导图
  8. c语言快速排序(quick_sort)整个排序过程可以递归进行
  9. dnx sdk版本dnx-clr-win-x86.1.0.0-beta5无法安装
  10. 解决MySQL报ValueError(“Could not process parameters“)错误