生命周期--保存&&恢复activity
来源:互联网 发布:cf手雷威力排行 数据 编辑:程序博客网 时间:2024/06/05 19:30
android开发生命周期
- 什么情况下需要保存activity的状态信息
- 如何保存,是在android生命周期的哪个时间段保存。
保存activity状态
- onSaveInstanceState:保存activity状态信息
- onRestoreInstanceState:恢复前一个activity的状态
保存activity的状态用到的是栈,先进后出
何时调用onSaveInstanceState和onRestoreInstanceState
只有涉及到当前activity跳转到其他activity时候才会用到保存状态信息
- back
- Home
- destroy
back生命周期如下:
- onCreate–onStart–onResume–onPause–onStop–onDestroy
- 可以很清楚的看出来,这个过程当中是不存在调用保存状态信息的调用
- 也可以看出在android设计者认为,当用户点击back退出系统时,就没比较保存状态信息,此时可以看作是用户不想再次进入这个activity当中了。
Home
退出时:
- onCreate–onStart–onResume(创建一个新的activity一定要走到这一步才算)–onPause(一旦需要退出,系统最先做出的反义一定是onPause)–onSaveInstanceState–onStop–onDestroy;
- 以上可知:activity的创建过程都会有以上最开始的三步
- 当一个activity需要终止的时候最先应该调用的是onPause,然后才是保存状态信息。
- 保存完了状态信息才会终止和销毁。
恢复时:
- onCreate–onStart–onRestoreInstanceState–onResume
- 可知:当一个activity需要出现时,如果他只是暂时的隐藏在后面,则属于onStop,再次启动时候不需要调用onRestoreInstanceState,直接从onStart开始就好了。
- 如果的activity被onDestroy掉了,要想再次恢复activity则必须要调用onRestoreInstanceState
- 从其他应用用跳转回来(A—–B——A)
- 生命周期如下:onCreate–onStart—onResume—onPause(activityA准备跳转到activityB)—onSaveInstanceState—onStop(此时activityA只是暂时失去焦点在后台,并没被onDestroy掉)—onRestart—onResume—onDestroy(activityB被后台回收掉)
总结
评判是否调用onSaveInstanceState的关键点在:activity是否存在被destroy掉的风险
- 当activity只是因为一个悬浮窗口而暂时失去焦点。当再次获得焦点时候,连onStart这种笨重的过程都不需要,只要onResume。
当activity只是因为暂时因为activity之间的跳转而转到后台运行时,此时android系统会将这个activity保存在内存当中,一般是不会被销毁的,除非内存不够用的时候。再次启动的时候,只需要调用onRestart—onStart这个过程就好。
- 与上面想比较,主要存在一个android要重新绘制界面吧???
当用户不断点击back按键退出activity的时候,android系统认为这是用户不再需要保存使用这个activity了,所以只要也没有必要保存activity的状态信息。
- 最后,点击Home键退出,android系统会认为这个意外退出,用户可能还需要再次进入。所以这个时候是需要保存状态信息的。
- 在用户点击Home退出时候,直到onPause才会执行保存状态信息的操作。
- 保存完了状态信息,此时这个activity是要被onDestroy掉的
- 当这个activity再次启动之时,先要创建onCreate—onStart — onRestoreInStanceState(恢复状态信息)—onResume.
保存状态信息在onResume之后,恢复状态信息在onResume之前
保存状态信息&&恢复状态信息
- 保存状态信息—一般保存的是activity视图的状态信息,比如说EditText的位置…..
- 保存状态信息是存放在一个bundle当中。
- 恢复状态信息一般会传入bundle,如果其中的值为null的时候。才会自己创建,不然的话只能是按照传入的bundle信息将其重新刻画
0 0
- 生命周期--保存&&恢复activity
- Activity生命周期,状态保存恢复(经典)
- activity状态的保存与恢复机制,生命周期
- Activity生命周期与状态保存
- Activity生命周期与状态保存
- 保存和恢复activity信息
- Activity : 状态保存与恢复
- Android -- Activity的生命周期,状态保存与恢复,Activity四种启动模式 Standard, SingleTop,SingleTask,SingleInstance
- Android -- Activity的生命周期,状态保存与恢复,Activity四种启动模式 Standard, SingleTop,SingleTask,SingleInstance
- Activity生命周期 之 暂停和恢复Activity
- Activity生命周期之暂停和恢复Activity
- Activity的生命周期,异常恢复数据
- Activity生命周期中的控件状态保存问题
- Activity生命周期保存参数onSaveInstanceState()与onRestoreInstanceState()
- 保存和恢复activity的状态数据
- 保存和恢复activity的状态数据
- Activity状态的保存与恢复
- Android保存和恢复activity状态数据
- windows7下 安装 mysql-5.7.11-win32
- java 求二叉树的深度
- Python简单网页爬虫——极客学院视频自动下载
- TextView实现一行居中显示,多行居左显示
- 动画
- 生命周期--保存&&恢复activity
- sql decode 函数用法 将查询结果翻译 转换
- HTML5实现图片压缩上传功能
- Java中的内部类
- iOS Block 写法详解
- 80. Remove Duplicates from Sorted Array II
- Swift - String与NSString的区别,以及各自的使用场景
- MySql事务详解
- java缓存框架详解