美文网首页
Crash集合

Crash集合

作者: topone37 | 来源:发表于2018-03-07 14:25 被阅读10次

关于Android切换系统字体大小和字体样式导致App崩溃或者界面错乱的问题

场景重现:主页面有一个ViewPager,有两页数据,滑动到第二页,然后切换字体,再切回app,app发生crash ,IndexOutOfBoundException

在字体切换之后,系统会发送一个通知给app,通知其更新界面,然而走的生命周期方法确实
onDestroy()->onCreate()->onResume();正常看起并没有什么不妥,但是:

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

//配置Activity的configChanges,防止页面被刷新

android:configChanges="orientation|screenSize|keyboardHidden|**fontScale**
//有一个尴尬的情况,如果我们改变的是字体样式,有点没辙

//究其原因就是onDestroy的时候,有些数据不太正确,因此在恢复的时候,可能导致crash,最果断直接方法来了,如果有保存的值,直接置为null

protected void onCreate(Bundle savedInstanceState) {
       if (null != savedInstanceState)
           savedInstanceState = null;
     super.onCreate(savedInstanceState);
}

相关文章

  • Crash集合

    关于Android切换系统字体大小和字体样式导致App崩溃或者界面错乱的问题 场景重现:主页面有一个ViewPag...

  • Crash in Cocoa

    Crash in Cocoa Cocoa中会导致Crash的地方: Exceptions类型 1. 集合类越界或插...

  • 工程Crash集合

    1、Undefined symbols for architecture x86_64: 解决 完整地添加依赖库 ...

  • 代码Crash,Error崩溃集合

    1、Error : NSInvalidArgumentException: A multiplier of 0 o...

  • [iOS] Crash来集合啦

    这篇文章其实想探讨一下 crash 都有哪些种类,以及如何解决酱紫,感觉自己之前好像有浅谈过log(https:/...

  • OC vs Swift -- Optional

    Why Optional# 引入optional可以解决两个问题, 解决潜在crash问题 比如OC中像集合dic...

  • Crash Course Catalogue

    Crash Course Series: Crash Course: Physics Crash Course: ...

  • iOS Crash三部曲~之三Crash分析

    1 iOS Crash Report app发生crash时会产生crash report,这对我们定位crash...

  • crash 收集分析

    crash 收集分析 当app发生crash时会产生crash report,查看crash记录对我们定位cras...

  • Crash 分析 kdump文件

    Crash 白皮书[https://crash-utility.github.io/crash_whitepape...

网友评论

      本文标题:Crash集合

      本文链接:https://www.haomeiwen.com/subject/zkpjfftx.html