Activity状态图、生命周期图(超详细),onSaveInstanceState只保存、恢复基本ui数据,持久数据不在这里保存。
1.Activity状态图

2.Activity生命周期简图

- 启动Activity: onCreate()—>onStart()—>onResume(),Activity进入running状态。
- 被其它Activity部分遮盖: onPause(),仍有部分可见,还在内存中。可被回收。同时在onPause里持久化数据。不是在onSaveInstanceState中。
- 从onPause回到前台:onResume(),然后再次进入running态。
- 被其它Activity遮盖(HOME,锁屏,启动其它Activity等):
onPause()->onStop()。此时仍可能在内存中,系统内存不足时,可被回收。 - 在Stopped时,用户再次点击进入Activity:如果已被回收,则onCreate()->onStart()->onResume(),没被回收onRestart()->onStart()->onResume()
3.超详细的Activity生命周期图

4.Activity保存、恢复数据
- 系统一般在
onStop()或onPause()前调用onSaveInstanceState(),而不是onDestory()前一步,因为用户可能就是退出。 - 不要忘记调用super.onSaveInstanceState();
- onSaveInstanceState只保存一些ui信息,并且不保证一定被调用,持久化的数据一定不要保存在这里。而应在onPause中。
Note: Because onSaveInstanceState() is not guaranteed to be called,
you should use it only to record the transient state of the activity (the state of the UI)
—you should never use it to store persistent data. Instead, you should use onPause() to store persistent
data (such as data that should be saved to a database) when the user leaves the activity.

Activity状态图、生命周期图(超详细),onSaveInstanceState只保存、恢复基本ui数据,持久数据不在这里保存。的更多相关文章
- Android中Activity的生命周期图
- Activity 之生命周期
Activity 之生命周期 本文内容: 1. Activity 介绍 2. Activity 的生命周期 2.1 生命周期图 2.2 常见情况下生命周期的回调 2.3 关于生命周期常见问题 2.4 ...
- 4、Android Activity的生命周期 Activity的生命周期
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXV4aWt1b18x/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...
- Android学习总结(一)——Activity的基本概念与Activity的生命周期
一.Activity的基本概念 Activity是Android的四大组件之一,它是一种可以包含用户界面的组件,主要用于和用户进行交互,比如打电话,照相,发送邮件,或者显示一个地图!Activity用 ...
- Activity的基本概念与Activity的生命周期
一.Activity的基本概念 Activity是Android的四大组件之一,它是一种可以包含用户界面的组件,主要用于和用户进行交互,比如打电话,照相,发送邮件,或者显示一个地图!Activity用 ...
- Activity生命周期图
首先看一下Android api中所提供的Activity生命周期图 Activity其实是继承了ApplicationContext这个类,我们可以重写以下方法,如下代码: public class ...
- android activity和fragment的生命周期图
Activity的生命周期: Fragment的生命周期:
- Activity Fragment Service生命周期图
service的生命周期,从它被创建开始,到它被销毁为止,可以有两条不同的路径: A started service 被开启的service通过其他组件调用 startService()被创建. 这种 ...
- Android(java)学习笔记170:Activity的生命周期
1.首先来一张生命周期的总图: onCreate():创建Acitivity界面 onStart():让上面创建的界面可见 onResume():让上面创建的界面 ...
随机推荐
- Manage, Administrate and Monitor GlassFish v3 from Java code usingAMX & JMX
http://kalali.me/manage-administrate-and-monitor-glassfish-v3-from-java-code-using-amx-jmx/ Manage, ...
- vue - 官方 - 上手
Vue和其它框架一样,有用CDN或本地JavaScript框架,国内我推荐 bootstrap cdn. 为什么很多人选择CDN呢? CDN:内容分发网络(不同区域不同服务器,更快),减少本地服务器压 ...
- window.location.hashs属性介绍
长话短说. location是javascript里边管理地址栏的内置对象.比方location.href就管理页面的url,用location.href=url就能够直接将页面重定向url. 而lo ...
- leetcode笔记:Majority Element
一. 题目描写叙述 Given an array of size n, find the majority element. The majority element is the element t ...
- Android 官方博客 - Android应用程序的内存分析(翻译)(转)
转自:http://www.cnblogs.com/wisekingokok/archive/2011/11/30/2245790.html Dalvik虚拟机支持垃圾收集,但是这不意味着你可以不用关 ...
- su 和 su- 会影响环境变量
大部分Linux发行版的默认账户是普通用户,而更改系统文件或者执行某些命令,需要root身份才能进行,这就需要从当前用户切换到root用户,Linux中切换用户的命令是su或su -,下面就su命令和 ...
- ORA-09817
连接数据库的时候报:ORA-09817:write to audit file,在网上搜索了下,发现时oracle安装目录下面的磁盘空间不够,有不少人给出了解决办法,下面即是一例: 连接oracle ...
- hexSHA1散列加密解密(不可逆)
1.maven引入codec和commons依赖: <dependency> <groupId>commons-codec</groupId> <artifa ...
- Linux内核--基于Netfilter的内核级包过滤防火墙实现
测试内核版本:Linux Kernel 2.6.35----Linux Kernel 3.2.1 原创作品,转载请标明http://blog.csdn.net/yming0221/article/de ...
- YTU 2904: B--Faultfinding
2904: B--Faultfinding 时间限制: 1 Sec 内存限制: 128 MB 提交: 64 解决: 33 题目描述 Do you remember the game in whic ...