A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mf152 中级黑马   /  2013-9-18 14:25  /  1916 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行(d)
     A、onPause()  B、onCreate()   C、 onResume()   D、onStart()

这到题网上答案是d, 可是我面试的时候面试管非得说是错的。大家帮我看看这道题真正的答案是那个???谢谢啦

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

4 个回复

倒序浏览
是.net 的知识吗?
回复 使用道具 举报
本帖最后由 张云飞 于 2013-9-18 15:19 编辑

这个是在onPause()方法中保存资源或者状态信息吧!先看一下官方周期图



比如正在玩游戏,这是接到一个电话;游戏是由运行状态进入暂停状态,即会调用onPause()方法,而再返回游戏是调用onResume()方法的,所以对转状态的恢复应该在onResume()方法中。只要前一个activity没有完全消失就不会调用onStop()方法进入停止状态,那也就不会调用onRestart()、onStart()方法了。
综上,无论那种情况,将资源及状态的保存放在onPause()方法最合适(因为只要由运行状态出去,就一定会调用该方法嘛,那就需要保存嘛)。


评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
应该选A onPause()
这个问题可以参照android中的activity的生命周期
顾名思义,onpause就是暂停的意思,既然有暂停就一定有开始的啦,所以数据存储在这个方法里面,不会丢失。而其他三个,并不存在这样的功能,他们的生命周期及其短暂
回复 使用道具 举报
应该是onPause()方法里面. 在Activity is running 的时候, 按下home后, 或者意外退出后, 就会经过onPause()方法,这时候保存数据和状态.

你可以看一下官方的文档对onPause()说明上面有这么一句话:
Called when the system is about to start resuming another activity. This method is typically used to commit unsaved changes to persistent data, stop animations and other things that may be consuming CPU, and so on. It should do whatever it does very quickly.

大概意思就是: 系统开始恢复另一个活动这种方法通常用于提交未保存的更改的持久化数据停止动画和可能消耗CPU的其他东西,等等它应该非常快.

官方文档都这么说了, 你还有什么好怀疑的...
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马