Android 重读官方文档 5 Activity

每个应用都有一个主 Activity,比如携程,比如 QQ 阅读等。

Activity 由一个栈来维护,获得当前焦点的 Activity 处于栈顶,

打开新的就会压入新的 Activity,按下回退键就会弹出栈顶元素。(更详细的参考下一篇或者是下下篇)


说到 Activity,不得不说生命周期。

onCreate 首当其冲,onStart 在 onResume 之前(或者是 onRestart),

onPause 出现在 onStop 之前,一个失去焦点,一个完全不可见了。


有个术语叫 recreate activity 

1. 当你旋转屏幕时。

2. 开发者模式中,选上不保留活动选项,那么无论是打开新 Activity 再回退或者是点击 home 键再进入,

都会经历一次 recreate activity:

onPause
onSaveInstanceState
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume


onPause 后的 onSaveInstanceState 用于保留一些值,共 recreate 时调用 onCreate 和 onRestoreInstanceState 使用(为什么会有两个地方,设计时什么初衷?)

我当初就觉得这个机制多此一举,但如果你的 Activity 里有很多 Fragment  的时候,也许很需要这个机制。

super.onSaveInstanceState 默认保存了一些东西,恢复方面与其对应,想用就 super 一下。


某种角度上说,recreate 不可避免,应该设法处理好这个东西,而不是设置旋转屏幕时不销毁 activity 什么的,

因为系统回收资源不随个人意志所转移,天知道什么时候它心情好了。


最后,文档上多次提及,onSaveInstanceState 的调用不被保证,故不要用于持久化。


以上来自:

http://developer.android.com/guide/components/activities.html

你可能感兴趣的:(Android 重读官方文档 5 Activity)