有关Activity生命周期以及状态的保存操作的选择
来源:互联网 发布:使命召唤ol自由数据 编辑:程序博客网 时间:2024/05/29 11:39
对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行?
选项有onPause,onCreate,OnResume,onStart
答案是选第四个:onStart
然后就要问,为什么呢?
先来一张图:
这要从用户的选择来说了:
1.用户想要退出
2.用户只不过是把他放到了后台,但是内存不足,系统自己把他给销毁了
如果是第一种,用户自己退出,那么用户想要的是再打开程序的时候,是一个新开始的状态,而不是保存起来的状态,那么它会onPause,onStop,onDestroy,然后再去onCreate。
如果是第二种,用户希望自己再打开这个页面的时候,还是原来的状态(因为在后台它的状态也可能会改变的),那如果我们选择onPause的时候,当这个activity重新回到顶端的时候,我们保存的状态就可能已经是改变过的了,当再调用onResume的时候,出现的是改变过的,不符合用户的要求。而是因为当我们将当前activity放到后台的时候,这个activity可能因为内存原因被系统杀死(注意:是系统杀死的,它首先会去执行onSaveInstanceState来保存状态,然后onPause,onStop),这时当用户切换到这个activity的时候,它会去执行onRestart,onStart,onResume来让这个activity运行起来,至于为什么不是onResume,而是onStart,是因为在onStart与onResume之间,还有一个onRestoreInstanceState,这个方法可以恢复一些由onSaveInstanceState保存的临时数据。(如果我们直接保存在onResume的时候,在那么恢复的数据会不会没地方放啊、、这里不知道对不对,请各位大牛指正)
参考:
http://zhidao.baidu.com/link?url=tM2BBc7_grov34k4zcHjA7uNH-QemqZ39W_veR0A5Pa7SUHjh1ud7izuNPI_CgRTqd-7phszNgX2yq5g9Ifc4a
http://blog.csdn.net/liuhe688/article/details/6733407
http://www.cnblogs.com/gisdream/archive/2013/07/08/3177432.html
有错的地方希望各位大牛告知,刚学三个月,好多不懂,再次请各位发现错误回复指正,拜谢
- 有关Activity生命周期以及状态的保存操作的选择
- Activity的生命周期以及几种状态
- Android应用中,退出activity时对一些资源以及状态的操作保存,可以在生命周期的哪个函数中进行?
- Activity 的生命周期 状态
- activity状态的保存与恢复机制,生命周期
- 保存Activity的状态
- 保存Activity的状态
- 保存Activity的状态
- 保存Activity的状态
- Activity的状态保存
- activity的状态保存
- Activity状态的保存
- 保存Activity的状态
- 保存Activity的状态
- activity状态的保存。
- Activity状态的保存
- Activity的状态保存
- Activity的状态保存
- Valid Number
- 【转】tomcat server.xml
- 由OpenSessionInViewFilter引起的No bean named 'sessionFactory' 异常
- BZOJ 3362 POJ 1984 Navigation Nightmare 带权并查集
- 《Systems Performance: Enterprise and the Cloud》读书笔记系列(六) —— 第二章(五)
- 有关Activity生命周期以及状态的保存操作的选择
- 第7周项目1-电阻串联
- dll方法调用引发的CrtIsValidHeapPointer错误
- How To Draw Graphs with Core Plot, Part 2
- QString的一些常用定义方法
- C#反射概念以及实例详解
- 实战:mysql版本升级
- jquery小结
- Using Core Plot in an iPhone Application