切换语言Fragment被回收

Android  2019年7月30日 pm7:14发布5年前 (2019)更新 城堡大人
102 0 0

这个最近在项目中遇到,摘抄于此。

开发过程中,页面使用fragmentactivity,可能会遇到这样的问题应用放置于后台,前台应用使用资源过多,手机默认会回收一些优先级低应用的资源。这样当我们的应用回到前端的时候,可能会因为资源被回收,引起异常,导致fragment显示错乱。 查了差相关资料以及别人的帖子, 有一个简单的解决方法, 在activity中重写

@Override
protected void onSaveInstanceState(Bundle outState) {
    // super.onSaveInstanceState(outState);
} 

方法中注释掉

super.onSaveInstanceState(outState);  

ok了。

原理呢,大致是这样的:

当Activity资源被回收前,会调用“onSaveInstanceState”这个方法保存相关的对象等资源 ,而

super.onSaveInstanceState(outState);  

调用父类的方法, 重新加载activity的时候默认的是不重新加载内嵌的fragment。直接导致fragmnet页面错乱的问题。

如果我们不调用父类的方法,等于重新加载activity和它的子fragment,避免了因为资源被回收导致fragment错乱的问题。

 历史上的今天

  1. 2024: git config时fatal not in a git directory(0条评论)
  2. 2023: JNI之List集合(0条评论)
  3. 2022: [摘]NDK错误记录:NDK is missing a platforms directory.(0条评论)
  4. 2021: 聂鲁达:我喜欢你是寂静的(0条评论)
  5. 2020: [摘]音视频学习系列第(三)篇---wav文件的存储和解析(0条评论)
版权声明 1、 本站名称: 笔友城堡
2、 本站网址: https://www.biumall.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

暂无评论

暂无评论...

随机推荐

Android View相关摘抄

前言介绍Android的View的相关知识(主要来自《Android进阶之光》),之前记录的,附在这里方便自己查询。正文View的继承关系ViewGroup作为View或者ViewGroup这些组件的容器, 派生了多种布局控件子类, 比如LinearLayout、 RelativeLayo...

[摘]Android如何设置TextView的行间距、行高。

在Android系统中TextView默认行间距比较窄,不美观。我们可以设置每行的行间距,可以通过属性android:lineSpacingExtra或android:lineSpacingMultiplier来做。修改行间距、行高你可以使用如下TextView属性1、android:lin...

修改Android系统时间设置到2099

前言修改Android支持的时间大于2037。系统时间限制默认是Int(有符号32位,最大0X7FFFFFFF)最大值即为: Integer.MAX_VALUE = 0X7FFFFFFF=2147483647 = 2038-01-19 11:14:07。个人流水账而已。正文将RTC时间限...

[摘]Android横屏和竖屏的方法

前言本文摘抄,方便自己查阅。正文AndroidManifest.xml配置在指定的要设置的Activity对应的标签中加入android:screenOrientation相关属性。unspecified:默认值 由系统来推断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的...

沈从文:寂寞的长街,并不寂寞

有个小小的城镇,有一条寂寞的长街。那里住下许多人家,却没有一个成年的男子。因为那里出了一个土匪,所有男子便都被人带到一个很远很远的地方去,永远不再回来了。他们是五个十个用绳子编成一连,背后一个人用白木梃子敲打他们的腿,赶到别处去作军队上搬运军火的案子的。他们为了“国家” 应当忘了“妻子”。大清...

Android app换肤简单记录

前言记录一下换肤的思路,方便自己查阅正文Android换肤已经烂大街了,很多大厂应用都做了,比如QQ、网易云、哔哩哔哩等,这些都是需要VVIP才可以体验的。这里推荐GitHub开源的而且很受欢迎的Android-skin-support,很强大。下面我就整理一下我对换肤的简单理解。换...