[摘]切换多国语言导致Fragment被回收,出现切换错乱

极客导航  2019-07-30 19:14  阅读 148 次 评论 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错乱的问题。

本文地址: https://www.125la.com/1135.html
关注我们:请关注一下我们站长微信:扫描二维码125啦读书导航的微信号,微信号:yudemi(十三少)
版权声明:本文为原创或转载文章,版权归原作者所有,欢迎分享本文,转载请保留出处!
第一个读书导航

发表评论


表情