`
CshBBrain
  • 浏览: 650186 次
  • 性别: Icon_minigender_1
  • 来自: 成都
博客专栏
B7d9bf34-126e-301f-819e-81f2615b5a2a
开源WebSocket服务...
浏览量:144921
Group-logo
HTML5移动开发
浏览量:137868
社区版块
存档分类
最新评论

Android Activity生命周期简介

 
阅读更多

转自:http://blog.sina.com.cn/s/blog_63c87a220100hfub.html

 

一个Activity有三种状态:

  • 激活或者运行状态,运行在前台(在当前Activity栈的栈顶)。
  • 暂停状态,失去了焦点但是仍然对用户可见,比如有其他的Activity在它之上,或者透明或者没有遮住整个屏幕。
  • 停止状态,被其他Activity覆盖,需要注意的是包括暂停状态在内,这两种状态都仍然保存了所有状态信息,直到被系统终止。

Activity状态间的转换,都会被以下Protected方法监听到:

1
2
3
4
5
6
7
void onCreate(Bundle savedInstanceState)
void onStart()
void onRestart()
void onResume()
void onPause()
void onStop()
void onDestroy()

以上的方法都是钩子,可以通过复写他们来做适当的工作。onCreate()是必须被实现的,来初始化Activity的状态。一般都会在onPause()里来提交数据的改变以准备中止和用户的交互。
注意:所有这些Activity的生命周期方法的实现都应该先调用其父类的方法。比如:

1
2
3
4
protected void onPause() {
    super.onPause();
    . . .
}

这7个方法描述了Activity的整个生命周期,其中包含了三个部分:

  • 整个周期 从onCreate()开始直到onDestroy()结束。在onCreate()里初始化Activity的状态,在onDestroy()里释放所有资源。
  • 可见周期 从onStart()开始到onStop()结束。在这段时间里,用户可以在屏幕上看见Activity,但并不一定在前台和用户进行交互。可以通过反复调用这两个方法来实现界面的显示和隐藏,也就是说可以在onStart()里注册一些BroadcastReceiver来监听用户的操作,在onStop()里注销这些监听事件,因为用户已经无法看见操作界面。
  • 前台周期 从onResume()开始到onPause()结束。这段时间,Activity处在最前端和用户进行交互。在这两个方法里,处理都应该尽量的轻量级,因为它们可能会被无数次的调用,比如手机进入睡眠模式就会触发onPause()。
方法 描述 是否可被杀死 下一个操作
onCreate() 初始化,创建views,绑定list的数据等等 onStart()
onRestart() 在Activity被停止后调用 onStart()
onStart() 在Activity被用户可见之前调用 onResume() 或者 onStop()
onResume() 在Activity和用户交互之前调用(快速,持久化) onPause()
onPause() 在系统要激活另一个Activity时调用(快速) onResume() 或者 onStop()
onStop() 在Activity不再可见时调用 onRestart() 或者 onDestroy()
onDestroy() 在Activity被销毁时调用  

保存Activity状态 想在Activity被中止之前保存状态,必须实现一个方法onSaveInstanceState(),Android会在调用onPause()之前调用它。需要把状态保存在一个键值对对象Bundle中,当Activity再次被激活时,这个对象会被传给onCreate()以及稍后的另一个方法onRestoreInstanceState()以恢复状态。
Note: onSaveInstanceState() 和onRestoreInstanceState()并不是生命周期方法,意味着它们并不一定会被触发。比如当系统销毁一个Activity时,onSaveInstanceState()会被调用,但是当用户去操作销毁一个Activity时(比如用户点击Back),onSaveInstanceState()就不会被调用。在这种场合,用户的行为决定了状态不需要被保存。因为onSaveInstanceState()不会经常被调用,所以只应该用它来保存一些临时的状态,而在onPause()里做数据的持久化操作。

分享到:
评论

相关推荐

    Android Activity生命周期

    Android Activity 生命周期 Android Activity 生命周期是指 Activity 从创建到销毁的整个过程,该过程中会经历多个状态变化,每个状态变化都会触发相应的回调方法。理解 Activity 生命周期是 Android 开发的基础。 ...

    Android activity生命周期示例

    本示例项目“Android activity生命周期示例”旨在帮助开发者深入理解Activity的生命周期及其各个阶段,这对于优化用户体验和资源管理至关重要。 Activity的生命周期包括以下几个主要状态: 1. **创建(Created)**...

    android Activity生命周期详解(图文)

    总之,深入理解Activity生命周期和其背后的源码逻辑,对于编写高效、响应迅速且用户体验优秀的Android应用至关重要。开发者应熟练掌握这些知识点,以便在设计和调试应用时能得心应手。通过实践和分析ActivityDemo,...

    android Activity生命周期

    Android Studio提供了多种工具帮助开发者调试Activity生命周期。例如: 1. **Android Profiler**:可以实时监控Activity的生命周期状态变化,同时分析内存、CPU和网络使用情况。 2. **Logcat**:通过打印日志,可以...

    Android Activity生命周期,源代码下载

    Android Activity生命周期演示源码,从第一个Activity到第二个Activity,Android Activity形象的说就是一个容器,在里面放置各种控件(按钮,文本,复选框等),就形成了软件的界面~ Activity是可见的。

    Android Activity生命周期测试代码

    有助于深入了解Android Activity生命周期的测试代码,可以结合博客http://blog.csdn.net/freetangxiaoying/article/details/17167819领悟。

    android activity 生命周期详细介绍

    ### 一、Android Activity生命周期介绍 #### 1. onCreate() 当Activity首次创建时被调用,这是初始化Activity的最佳时机。在该方法中通常会执行一些初始化操作,比如设置布局文件、初始化UI组件等。 示例: ``` @...

    测试Android Activity生命周期Demo

    本示例“测试Android Activity生命周期Demo”旨在通过实际代码帮助开发者理解并掌握Activity的生命周期,这对于创建稳定、高效的Android应用至关重要。 Activity的生命周期包括了多个关键状态,如初始化、启动、...

    Activity生命周期与启动模式

    **Activity生命周期** Activity的生命周期包括了从创建到销毁的各个阶段,主要有以下7个关键状态: 1. **创建(Created)**:当Activity首次被创建时,会调用`onCreate()`方法。在这里,通常进行初始化工作,如...

    Android Activity 生命周期

    Android Activity生命周期是Android应用开发中的核心概念,理解并掌握它对于构建高效、用户友好的应用程序至关重要。Activity作为Android系统中的一个关键组件,代表着用户界面的一个独立屏幕,它有自己的生命周期,...

    android activity生命周期实例

    理解并掌握Activity生命周期对于编写稳定、响应迅速的Android应用至关重要。合理处理生命周期方法中的回调,可以确保在状态切换时正确保存和恢复用户数据,同时优化性能和用户体验。在实际开发中,开发者还需要考虑...

    Android Activity生命周期测试程序

    这是Activity生命周期的第一个回调,通常在这里进行初始化工作,如设置布局、初始化数据等。 2. **可见状态(Started/Resumed)**:`onStart()`在Activity变得对用户可见时调用,但用户还不能与其交互。接着,`...

    两分钟彻底让你明白Android Activity生命周期(图文)

    两分钟彻底让你明白Android Activity生命周期(图文)

    Android Activity 生命周期(lifecycle)的研究

    在研究Activity生命周期时,源码分析是非常重要的一环。开发者可以通过查看Android框架的源代码,了解系统是如何调用这些回调方法的。例如,可以研究ActivityThread类中的handleCreateActivity()、...

    android activity生命周期示例代码

    android activity生命周期示例代码。里面包含activity执行finish之后的生命周期,旋转的生命周期。切换以及返回activity的生命周期。我的博客地址:http://blog.csdn.net/qq_16064871

    Activity生命周期演示

    日志追踪(完成以下六步、明白android的四种状态的生命周期和相互切换): 1、启动app、查看控制台输出,发现依次触发onCreate、onStart、onResume这三个方法 2、点击按钮(弹窗风格的Activity),控制台输出onPause...

    android activity 生命周期

    #### 三、Activity生命周期方法详解 - **`onCreate()`**:这是Activity的第一个生命周期方法,当Activity被创建时调用。开发者通常在此处初始化UI组件并设置布局。此外,还可以进行一些必要的初始化操作,如读取...

    Android Activity生命周期Demo源码.rar

    本Demo源码提供了关于Activity生命周期的详细示例,帮助开发者更好地理解和掌握这一主题。 Activity的生命周期主要包含以下几个关键状态: 1. **创建(Creation)**: - `onCreate()`:Activity被创建时首先调用...

Global site tag (gtag.js) - Google Analytics