`

Activity生命周期

 
阅读更多
博客分类: Android

      新的activity启动后,前一个activity就会停止,系统将其保存到一个历史栈中。返回时,顶层的activity就会被销毁,之前的activity就会重新显示在屏幕上。当然,如果系统内存不足,后台的activity就会被销毁。



     androidmanifest中的intent-filter标签指定了初始启动的activity



Activity生命周期:由android系统管理

onCreate()

onStart()

onRestart()

onResume()

onPause()

onStop()

onDestroy()




















Java代码 
package com.example.ex;  
 
import android.os.Bundle;  
import android.util.Log;  
import android.app.Activity;  
 
public class MainActivity extends Activity {  
 
    private static final String LIFETAG="Aclifecycle";  
 
    @Override 
    protected void onCreate(Bundle savedInstanceState) {  
        // TODO Auto-generated method stub  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
    }  
      
    @Override 
    protected void onStart(){  
        super.onStart();  
        Log.d(LIFETAG,"onstart method is executed");  
    }  
    @Override 
    protected void onResume(){  
        super.onResume();  
        Log.d(LIFETAG,"onresume method is executed");  
    }  
    @Override 
    protected void onRestart(){  
        super.onRestart();  
        Log.d(LIFETAG,"onrestart method is executed");  
    }  
    @Override 
    protected void onPause(){  
        super.onPause();  
        Log.d(LIFETAG,"onpause method is executed");  
    }  
    @Override 
    protected void onStop(){  
        super.onStop();  
        Log.d(LIFETAG,"onstop method is executed");  
    }  
    @Override 
    protected void onDestroy(){  
        super.onDestroy();  
        Log.d(LIFETAG,"ondestroy method is executed");  
    }  
 
      


package com.example.ex;

import android.os.Bundle;
import android.util.Log;
import android.app.Activity;

public class MainActivity extends Activity {

private static final String LIFETAG="Aclifecycle";

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

@Override
protected void onStart(){
super.onStart();
Log.d(LIFETAG,"onstart method is executed");
}
@Override
protected void onResume(){
super.onResume();
Log.d(LIFETAG,"onresume method is executed");
}
@Override
protected void onRestart(){
super.onRestart();
Log.d(LIFETAG,"onrestart method is executed");
}
@Override
protected void onPause(){
super.onPause();
Log.d(LIFETAG,"onpause method is executed");
}
@Override
protected void onStop(){
super.onStop();
Log.d(LIFETAG,"onstop method is executed");
}
@Override
protected void onDestroy(){
super.onDestroy();
Log.d(LIFETAG,"ondestroy method is executed");
}


}

启动程序:

执行3个生命周期方法:

onCreate()     activity第一次创建时调用

onStart()        activity对用户即将可见时调用

onResume()   activity即将与用户交互时调用 磁石activity进入栈顶

在这之后总是调用onpause()方法







按下模拟器的拨号按钮,activity失去焦点,观察logcat中信息:







onPause()在activity启动另一个activity时调用。下一个activity必须等待这个方法返回后再启动。

onStop()在一个新的activity启动,其他activity被切换到前台,当前activity被销毁时都会调用。



点击返回键:





当activity从stopped状态启动时调用OnRestart()方法,后面总是调用onstart()方法。



再次按返回键,关闭activity:








    很多时候,在关闭一个activity后,用户期望再次返回到哪个activity,它仍保持离开时的样子,这时候就需要考虑如何保存activity。

    为了获取activity被杀死前的状态,应该为activity实现onSaveInstanceState()方法。它在activity被系统销毁前调用。

    用户造成的销毁(如按下返回键),不会调用。

    最好用onpause()方法来保存在停止与用户交互前更改过的数据。



总结:

oncreat() ondestroy()创建和销毁

onstart() onstop() 可见和不可见

onresume() onpause()焦点和无焦点

onrestart() 在onstop()以后却没有执行ondestroy()方法时调用。如调用了ondestroy则调用onCreat。











分享到:
评论

相关推荐

    Activity生命周期实例讲解

    Activity生命周期包括7个主要阶段,分别是: 1. `onCreate()`:当Activity首次创建时调用,用于初始化界面布局、数据和一些基本设置。在这个方法里,通常会设置视图、加载数据和设置监听器。 2. `onStart()`:当...

    activity生命周期

    这是Activity生命周期的第一个回调,通常在这里进行初始化工作,如设置布局、数据绑定等。 2. **启动(Started)**:`onStart()`方法标志着Activity可见但可能不完全在前台。用户可以看到Activity,但不能与其交互...

    详解Activity生命周期

    详解Activity生命周期一、概述1.方法简述2.三种周期二、生命周期中涉及到的其他方法1.onSaveInstanceState() 方法2.onBackPressed()方法三、四条生命线Line 1 onCreate() → onDestroy() 完整生命周期Line 2 onStart...

    Android中的Activity生命周期总结

    本文将详细探讨Android中的Activity生命周期,通过官方提供的生命周期流程图进行解析,并讲解每个状态的转换及其对应的函数调用。 首先,Activity的生命周期通常分为四个主要状态:活动状态(running)、暂停状态...

    Activity生命周期演示

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

    Activity生命周期详解

    ### Activity生命周期详解 #### 概述 Android应用开发中,`Activity`是四大基础组件之一,主要用于构建用户界面。理解`Activity`的生命周期对于管理应用的状态、资源以及响应用户交互至关重要。 #### `Activity`...

    activity 生命周期

    - **创建(Creation)**: 当Activity首次被创建时,会经历`onCreate()`方法,这是Activity生命周期的第一个回调,通常在这里进行初始化工作,如设置布局、初始化数据等。 - **启动(Starting)**: `onStart()`方法...

    Activity生命周期与启动模式

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

    日志跟踪Activity生命周期

    日志跟踪Activity生命周期对于理解和调试应用程序的行为至关重要。通过日志,开发者可以观察Activity在何时何地执行了哪些方法,如何响应系统事件,以及是否按预期进行初始化、显示、暂停、恢复或销毁。 首先,...

    Android基础之Activity生命周期

    首先,当我们启动一个Activity时,系统会调用`onCreate()`方法,这是Activity生命周期的第一个关键点。在这个方法中,通常会完成Activity的基本设置,如设置布局、初始化变量等。之后,系统会调用`onStart()`,使得...

    2020-实验1-Activity生命周期验证(已完成)1

    Activity生命周期的理解和管理对于编写高效、响应式的Android应用至关重要。本实验旨在深入探索Activity的生命周期,并通过实践来理解各个阶段的工作流程以及它们之间的转换。 首先,我们来看一下Activity的生命...

    Activity生命周期demon

    在这个"Activity生命周期demon"中,我们将深入探讨Activity在不同状态下的行为及其转换。 1. **Activity生命周期的阶段** - **创建(Created)**:当Activity首次被创建时,会调用`onCreate()`方法。在这个阶段,...

    Activity生命周期Demo

    在这个"Activity生命周期Demo"中,我们将深入探讨Activity如何启动、运行、暂停、停止以及销毁的过程,以及在这些状态转换中如何适当地处理程序逻辑。 1. **Activity生命周期的基本阶段** - **创建(Created)**: ...

    Android Activity生命周期和堆栈管理的详解

    Android Activity生命周期和堆栈管理的详解 Android Activity生命周期是指Activity从创建到销毁的整个过程,包括了七个回调方法:onCreate、onStart、onRestart、onResume、onPause、onStop、onDestroy。这些方法...

    Activity生命周期管理

    总结起来,Activity生命周期管理是Android开发中的关键技能,通过合理使用`ActivityLifeCallbackManagers`和`ActivityLifeCallbackManager`这样的工具类,可以更高效、准确地控制和监控Activity的状态,从而提高应用...

Global site tag (gtag.js) - Google Analytics