Android--Activity的生命周期(一)

1、Activity的创建过程

1、1 创建一个Activity

  • 创建一个Class继承自Activity
  • 重写onCreate()方法,设置布局
  • 在AndroiManifest.xml文件中注册该Activity

1、2 Activity7个重要方法

  • onCreate – 首次创建时调用
  • onStart – 启动时
  • onResume – 获得焦点时
  • onPause – 转入其它Activity或者休眠等
  • onStop – 当前activity不可见时
  • onRestart – 重新启动时
  • onDestory – 销毁时

2、单个Activity生命周期

为了证实结论正确,我们新建一个Activity命名为Fisrt,并重写上述7个方法。并在每个方法中打印出当前调用的方法。代码如下:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        System.out.println("First onCreate");
    }
    @Override
    protected void onStart() {
        System.out.println("First onStart");
        super.onStart();
    }

    @Override
    protected void onResume() {
        System.out.println("First onResume");
        super.onResume();
    }

    @Override
    protected void onPause() {
        System.out.println("First onPause");
        super.onPause();
    }

    @Override
    protected void onStop() {
        System.out.println("First onStop");
        super.onStop();
    }

    @Override
    protected void onRestart() {
        System.out.println("Fisrt onRestart!");
        super.onRestart();
    }

    @Override
    protected void onDestroy() {
        System.out.println("First onDestory!");
        super.onDestroy();
    }

现在我们首次启动Activity发现输出为:

First onCreate
First onStart
First onResume

当我们点击Home,回到主界面时,输出为:

First onPause
First onStop

在点击程序,回到程序,输出为

First onRestart
First onStart
First onResume

在点击back,输出为

First onPause
First onStop
Fisrt onDestory

上述输出可以明显看出启动过程,就不多叙述了。

3、多个Activity生命周期

这里创建两个Activity,分别为First和Second,2个以上的,其实都是一样的。

我们在第一个activity中添加了个button,当点击button时,使用Intent跳转到Second,

跳转代码:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        System.out.println("First onCreate");
        Button btn = (Button)findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {

                Intent intent = new Intent();
                intent.setClass(MainActivity.this,SecondActivity.class);
                startActivity(intent);
            }
        });
    }

怎么添加Button控件,就不阐述了。

下面我们启动应用程序,即进入到了first activity中。根据2所说,输出顺序应该为:

first onCreate
first onStart
first onResume

然后我们点击Button跳转到second activity中,输出为:

first onPause
second onCreate
second onStart
second onResume
first onStop

这时候活动的为second activity,所以此时进行home操作,和上面的一样。

如果我们这时点击了back退回到,则输出为

second onPause
first onRestart
first onStart
first onResume
second onStop
second onDestory

这时second activity已经destroy掉了,如果再进入就不是和上面的一样了,而是重新创建一个新的Activity了,再次跳转到second activity,则输出为:

first onPause
second onCreate
second onStart
second onResume
first onStop

4、总结

上面的程序输出已经把调用顺序,解释的很清楚了。建议大家,自己重载那7个函数,然后自己启动,实验一下增加下理解。

时间: 2024-08-07 20:37:40

Android--Activity的生命周期(一)的相关文章

Android Activity的生命周期简单总结

Android Activity的生命周期简单总结 这里的内容参考官方的文档,这篇文章的目的不是去总结Activity是如何启动,如何创造,以及暂停和销毁的,而是从实际开发中分析在Activity各个生命周期,我们应该处理的内容. Activity 各个生命周期 由图可以看出 ,在一个activity的生命周期中,系统会像金字塔模型一样去调用一系列的生命周期回调函数.在最上端是当前Activity的运行状态,也就是说用户彻底看到这个Activity时,Activity正处于onResume()状

Android Activity Fragment 生命周期

从开源项目中看到 这个,就不由自主的收藏了~ https://github.com/xxv/android-lifecycle Android Activity Fragment 生命周期

Android——Activity的生命周期

一,Demo测试Activity的生命周期 写两个Activity: package com.example.activity_04; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; im

从零开始学android<ACtivity的生命周期.三十九.>

意图是指两个UI主界面的转换,要想了解意图就必须学习ACtivity的生命周期 默认在UI界面显示的为运行为运行状态,而在后台的为onPause方法 主线: OnCreate()--> OnStart() --> OnResume() -->OnPause()-->OnStop ()-->OnDestroy() 副线: OnCreate()--> OnStart() --> OnResume() -->OnPause()-->OnStop ()--&g

4、Android Activity的生命周期 Activity的生命周期

1.完整生命周期 上图是Android Activity的生命周期图,其中Resumed.Paused.Stopped状态是静态的,这三个状态下的Activity存在时间较长. (1)Resumed:在此状态时,用户可以与Activity进行交互,Activity在最前端 (2)Paused:在此状态时,Activity被另外一个Activity遮盖,此Activity不可接受用户输入信息.另外一个Activity来到最前面,半透明的,但并不会覆盖整个屏幕. (3)Stopped:在此状态时,A

Android:Activity的生命周期

Activity的生命周期 oncreate:Activity对象创建完毕,但此时不可见 onstart:Activity在屏幕可见,但是此时没有焦点 onResume:Activity在屏幕可见,并且获得焦点 onPause:Activity此时在屏幕依然可见,但是已经没有焦点 onStop:Activity已经不可见了,但是此时的Activity的对象还在内存中 onDestroy:Activity对象被销毁

android Activity 的生命周期 以及横屏竖屏切换时 Activity 的状态变化

生命周期Android 系统在Activity 生命周期中加入一些钩子,我们可以在这些系统预留的钩子中做一些事情.例举了 7 个常用的钩子:protected void onCreate(Bundle savedInstanceState)protected void onStart()protected void onResume()protected void onPause()protected void onStop()protected void onRestart()protecte

【Android基础篇】Activity的生命周期

Google开发者文档 http://developer.android.com/reference/android/app/Activity.html 应用的每个页面都是一个Activity,这些Activity都存放在一个Activity栈中,每次进入某个应用或者应用的某个界面时,新界面这个Activity就压入到Activity栈的顶部:退出或返回的时候就把栈顶的Activity弹出,之前的Activity就又到了栈顶. Activity生命周期里的四个状态 - Running : Act

无废话Android之activity的生命周期、activity的启动模式、activity横竖屏切换的生命周期、开启新的activity获取他的返回值、利用广播实现ip拨号、短信接收广播、短信监听器(6)

1.activity的生命周期 这七个方法定义了Activity的完整生命周期.实现这些方法可以帮助我们监视其中的三个嵌套生命周期循环: (1)Activity的完整生命周期 自第一次调用onCreate()开始,直到调用onDestory()为止.Activity在onCreate()中设置所有“全局”状态以完成初始化. 而在onDestory()中释放所有系统资源.例如,如果Activity有一个线程在后台运行从网络下载数据,它会在onCreate()创建线程, 而在onDestory()销

Android——Activity和Intent及Activity的生命周期

实验Activity的生命周期 package com.example.chenshuai.test; import android.app.Activity; import android.os.Bundle; import android.util.Log; /** * Created by chenshuai on 2016/3/16. */ public class Axtivity2 extends Activity { //回调方法 @Override protected void