`
coolbi
  • 浏览: 85350 次
  • 性别: Icon_minigender_1
  • 来自: 重庆&南京
社区版块
存档分类
最新评论

Android Activity生命周期总结

阅读更多

Android操作系统以一个stack的形式来管理activity,stack是一个后进先出的数据结构,当一个activity位于另一个activity之上并且是当前正在运行的activity,那么这个activity就到了这个stack的顶部。

正面是Activity的4种基本状态:

  1. Active/Runing 一个新 Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态。
  2. Paused 当 Activity 被另一个透明或者 Dialog 样式的 Activity 覆盖时的状态。此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点故不可与用户交互。
  3. Stoped 当 Activity 被另外一个 Activity 覆盖、失去焦点并不可见时处于 Stop ed 状态。
  4. Killed Activity 被系统杀死回收或者没有被启动时处于 Killed 状态。

 

 

在Android的生命周期中有6个函数来调用:

 

protected void onCreate(Bundle savedInstanceState);
protected void onStart();
protected void onResume();
protected void onPause();
protected void onStop();
protected void onDestroy();

 

Method Description Killable next
onCreate() 当Activity第一次创建的时候被调用,在这个方法里你可以做一些初始化工作,创建视图,绑定数据等等,这个方法提供了Bundle参数,如果有先前的状态,你可以从这个参数中取得,他之后调用onStart()方法 NO onStart()
onRestart() 在调用onStop()方法之后会被调用,先前的activity又被调用了,下一个方法是onStart() NO onStart()
onStart() 当Activity可见的时候被调用,当Activity从新回到前面下一个方法是onResume(),
onResume()
onPause()
onStop()
onDestroy()


 

Method Description Killable? Next onCreate()onRestart()onStart()onResume()onPause()onStop()onDestroy()
Called when the activity is first created. This is where you should do all of your normal static set up: create views, bind data to lists, etc. This method also provides you with a Bundle containing the activity's previously frozen state, if there was one.

Always followed by onStart() .

No onStart()
     Called after your activity has been stopped, prior to it being started again.

Always followed by onStart()

No onStart()
Called when the activity is becoming visible to the user.

Followed by onResume() if the activity comes to the foreground, or onStop() if it becomes hidden.

No onResume() or onStop()
     Called when the activity will start interacting with the user. At this point your activity is at the top of the activity stack, with user input going to it.

Always followed by onPause() .

No onPause()
Called when the system is about to start resuming a previous activity. This is typically used to commit unsaved changes to persistent data, stop animations and other things that may be consuming CPU, etc. Implementations of this method must be very quick because the next activity will not be resumed until this method returns.

Followed by either onResume() if the activity returns back to the front, or onStop() if it becomes invisible to the user.

Yes onResume() or
onStop()
Called when the activity is no longer visible to the user, because another activity has been resumed and is covering this one. This may happen either because a new activity is being started, an existing one is being brought in front of this one, or this one is being destroyed.

Followed by either onRestart() if this activity is coming back to interact with the user, or onDestroy() if this activity is going away.

Yes onRestart() or
onDestroy()
The final call you receive before your activity is destroyed. This can happen either because the activity is finishing (someone called finish() on it, or because the system is temporarily destroying this instance of the activity to save space. You can distinguish between these two scenarios with the isFinishing() method. Yes nothing

 

 

 

 

 

 

 

  • 大小: 64.6 KB
分享到:
评论

相关推荐

    Android Activity生命周期

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

    Android activity生命周期示例

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

    android Activity生命周期

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

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

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

    Activity生命周期总结

    ### Activity 生命周期总结 在 Android 开发中,理解 Activity 的生命周期是非常重要的,因为它直接影响到应用程序的行为、性能以及用户体验。本文将详细介绍 Activity 生命周期中的各个方法及其触发条件,并通过...

    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 生命周期

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

    android activity生命周期示例代码

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

    Activity生命周期演示

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

Global site tag (gtag.js) - Google Analytics