`

FragmentActivity中资源被回收,导致页面fragment错乱的问题

阅读更多
开发过程中,页面使用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错乱的问题。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics