Activity的生命周期
来源:互联网 发布:淘宝联盟推广位怎么设 编辑:程序博客网 时间:2024/06/06 19:28
Activity的生命周期
活动的状态
- 运行状态
活动处于栈顶 - 暂停状态
活动不再处于栈顶,但仍然可见时 - 停止状态
活动不再处于栈顶,并且完全不可见 - 销毁状态
活动从返回栈移除
活动的生存期
- onCreate()创建。在活动第一次创建的时候被调用,在这个方法中完成活动的初始化操作,比如加载布局,绑定事件等。
- onStart()启动。这个方法由活动不可见变为可见的时候调用。
- onResume()恢复。此时的活动一定位于返回栈的栈顶,并且处于运行状态。
- onPause()暂停。这个方法在系统准备去启动或者恢复另一个活动的时候调用。
- onStop()停止。在活动完全不可见的时候调用。启动一个对话框则会调用onPause()不会调用onStop()。
- onDestroy()销毁。在活动销毁前调用,之后活动处于销毁状态。
- onRestart()重启。在活动由停止状态变为运行状态,也就是活动被重新启动了。
除了onRestart()方法,其他都是两两相对的。
完整生存周期
- onCreate()
- onDestroy()
可见生存周期
- onStart()
- onStop()
前台生存周期
- onPause()
- onResume()
设备旋转前保存数据
@Overrideprotected void onSaveInstanceState(Bundle outState)/*如果系统调用 onSaveInstanceState(),它会在调用 onStop() 之前,并且可能会在调用 onPause() 之前进行调用。默认实现要求所有activity视图将自身状态数据保存在Bundle对象中*/
activity只有在暂停或停止状态下才可能会被销毁。此时,会调用onSaveInstanceState(…)方法。
调用onSaveInstanceState(…)方法时,用户数据随即被保存在Bundle对象中。然后操作系统将Bundle对象放入activity记录中。
注:每个view要有id才能为期恢复其状态
系统会先调用 onSaveInstanceState(),然后再使 Activity 变得易于销毁。系统会向该方法传递一个 Bundle,您可以在其中使用 putString() 和 putInt() 等方法以名称-值对形式保存有关 Activity 状态的信息。然后,如果系统终止您的应用进程,并且用户返回您的 Activity,则系统会重建该 Activity,并将 Bundle 同时传递给 onCreate() 和 onRestoreInstanceState()。您可以使用上述任一方法从 Bundle 提取您保存的状态并恢复该 Activity 状态。如果没有状态信息需要恢复,则传递给您的 Bundle 是空值(如果是首次创建该 Activity,就会出现这种情况)。
注:由于无法保证系统会调用 onSaveInstanceState(),因此您只应利用它来记录 Activity 的瞬态(UI 的状态)— 切勿使用它来存储持久性数据,而应使用onPause() 在用户离开 Activity 后存储持久性数据(例如应保存到数据库的数据)。
那么暂存的activity记录到底可以保留多久?用户按了后退键后,系统会彻底销毁当前的activity。此时,暂存的activity记录同时被清除。此外,系统重启或长时间不使用activity时,暂存的activity记录通常也会被清除.
- 什么是Activity?Activity的生命周期!
- Activity及Activity的生命周期
- Activity 的生命周期
- Android activity的生命周期
- Activity的生命周期
- Android:Activity的生命周期
- Activity的生命周期
- Activity的生命周期
- Activity的生命周期
- Activity的生命周期
- Activity的生命周期
- Activity的生命周期
- Android Activity的生命周期
- Android Activity的生命周期
- Activity的生命周期一
- Android Activity的生命周期
- Activity的生命周期
- Android activity的生命周期
- windows编程第一天
- ajax传递参数含有特殊字符解决方案
- ContentService注册和更新机制
- 案例——商品展示
- 校赛D GCD关于斐波拉契(待更)
- Activity的生命周期
- java操作pdf生成图片水印
- JavaScript DOM编程艺术读后感(二)
- FileInputFormat类中split切分算法和host选择算法介绍
- 五、用反射实现一个Servlet类里处理多个请求,不推荐重写service
- 如何既要让Service长期的在后台运行,又要调用Service里面的方法
- ActionBar的学习要点!
- iOS逆向工程之class-dump
- 李开复:未来10年出现独角兽最多领域将是人工智能