您的位置:首页 > 其它

Activity中保存状态和数据

2016-08-26 11:25 204 查看
onResume()和onPause()方法是调用比较频繁的,在这两个方法里面一般做很小耗时的操作。

另外:onPause,onStop,onDestory三个方法中,由于onPause方法是Activity创建后最有可能保证执行的方法。

因此,当系统遇到紧急情况需要恢复内存,那么onStop,onDestory可能不被执行,因此你应当在onPause里保存一些至关重要的状态属性,当然你应当有选择性的做一些操作,不能太耗时,如果太耗时,那么其他的activity将不能被创建直到该activity的onPause方法执行完毕并返回。

onSaveInstanceState()方法是有个Bundle参数的,这个方法保存的数据是由系统管理的,当你该activity被杀死,重新访问的时候该Bundle参数会被传入onCreate()方法的Bundle。而在onPause里面保存的数据是可能保存到硬盘去的。

在使用Fragment的页面切换时,可能会出现重影,这是因为当前内存被回收的缘故,但是因为当前页面需要显示,便会重新加载,在系统会自作聪明的重启当前所有的页面,解决这个问题便是需要利用重写onSaveInstanceState()记录当前切换的页面,在内存重启页面再次加载的时候只加载当前页面!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: