`

关于android activity 生命周期方法

阅读更多

http://developer.android.com

 

与其它编程范例里的 main() 方法不一样, android 在 activity 实例里的启动是通过调用一系列的回调方法,每一个回调方法都对应于生命周期中特定的状态。开启或者销毁一个activity 对通过一系列的 回调方法来实现。

 

1. onStart()

    onStart() 方法与 onStop() 方法是相对应的,因为不管是第一次创建还是从stopped 状态恢复回来都要调用 onStart(); 

    在onStart 方法里可以检测一些系统特征是否有效果,比如

    

    @Override

protectedvoid onStart(){
    super.onStart();  // Always call the superclass method first
    
    // The activity is either being restarted or started for the first time
    // so this is where we should make sure that GPS is enabled
    LocationManager locationManager = 
            (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    boolean gpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
    
    if(!gpsEnabled){
        // Create a dialog here that requests the user to enable GPS, and use an intent
        // with the android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS action
        // to take the user to the Settings screen to enable GPS when they click "OK"
    }}@Overrideprotectedvoid onRestart(){
    super.onRestart();  // Always call the superclass method first
    
    // Activity being restarted from stopped state    }

2. onPause()

 

    Called when the system is about to start resuming another activity. This method is typically used to commit unsaved changes to persistent data, stop animations and other things that may be consuming CPU, and so on. It should do whatever it does very quickly, because the next activity will not be resumed until it returns.    

      比如记录用户的视频播放点,草稿邮件等一些重要的东西都应该在 onPause() 里保存,因为 onPause(), onStop(), onDestory() 这三个方法中的任意一个被执行完后 activity 所在的 process 都有可能被系统杀死(比如为了恢复系统内存)。

 

3. onStop()

     基本上我们应该在 onStop() 方法里清除释放所有可能会导致 内存泄漏的 activity 资源;因为 onDestory() 可能不被执行,而又不太适合在 onPause() 里做太多的事情。

     Although the onPause() method is called before onStop(), you should use onStop() to perform larger,

     more CPU intensive shut-down operations, such as writing information to a database.

 

4. onDestory()

     onDestory() 是 activity 生命周期里最后一个 回调方法,所以onDestory() 是我们释放那些有可能导致内存泄漏的资源;

     通常在 onCreate() 里创建的后台 / 额外的线程对象,以及其它的 long-running actions like method tracing 都应该在 onDestory() 里得到释放。

   

 5. onSaveInstanceState()

     onSaveInstanceState() 在 onPause() 之前被调用;

     onRestoreInstanceState() 在 onStart() 之后被调用,且只有 Bundle savedInstanceState 不为空时才被系统调用;

     Activity的 onSaveInstanceState() 和 onRestoreInstanceState()并不是生命周期方法,它们不同于 onCreate()、onPause()等生命周期方法,它们并不一定会被触发。

      可参考 http://www.cnblogs.com/hanyonglu/archive/2012/03/28/2420515.html 

 

6.  

 

       如果在 onCreate() 里调用 finish() 方法会直接调用 onDestory() 方法;

 

      1)  启动Activity:onCreate()->onStart()->onResume()->Activity is running 

      2)  按back键返回:onPause()->onStop()->onDestroy() 再次启动时:onCreate()->onStart()->onResume()->Activity is running 
     

      3). 按home键返回:onPause()->onStop() 再次启动时:onRestart()->onStart()->onResume()->Activity is running 

      4) 切换到别的Activity(当前Activity不finish): onPause()->onStop() 再次启动时:onRestart()->onStart()->onResume()->Activity is running 

       5) 切换到别的Activity(当前Activity finish): onPause()->onStop()->onDestroy() 再次启动时:onCreate()->onStart()->onResume()->Activity is running 

 

 

 

    

分享到:
评论

相关推荐

    Android Activity生命周期

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

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

    测试Android Activity生命周期Demo

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

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

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

    Android Activity生命周期测试代码

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

    Activity生命周期与启动模式

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

    Android Activity 生命周期

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

    android activity生命周期实例

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

    Activity生命周期演示

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

    Android课程第一次实验报告_Andorid应用程序Activity生命周期.docx

    本实验报告将深入探讨Android应用程序,尤其是Activity、Service和Intent Receiver的生命周期,并解释如何正确管理这些组件以避免不必要的进程销毁。 首先,Android应用通常在独立的Linux进程中运行。当应用需要...

    Android Activity生命周期测试程序

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

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

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

    android activity 生命周期

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

    Android Activity生命周期Demo源码.rar

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

    Android 中从activity1跳转到activity2再回到activity所经历的生命周期

    ### Android 中从Activity1跳转到Activity2再回到Activity1所经历的生命周期 在Android开发过程中,理解Activity的生命周期对于管理界面状态、处理用户交互以及响应系统事件至关重要。本文将详细解析从一个Activity...

Global site tag (gtag.js) - Google Analytics