美文网首页
活动的生命周期

活动的生命周期

作者: 今天也要努力呀y | 来源:发表于2020-02-27 17:29 被阅读0次
未命名文件.png

Android使用任务栈来管理活动,
1.活动状态
运行状态:一个活动位于返回栈的栈顶,活动就处于运行状态
暂停状态:不再处于栈顶位置,但任然可见时
停止状态:不再处于栈顶位置,完全不可见
销毁状态:从返回栈中移除

onCreate() 活动第一次被创建的时候调用,完成活动的初始化操作
onStart()活动由不可见到可见的时候
onResume() 活动准备好和用户交互的时候调用,此时活动处于返回栈的栈顶,并且处于运行状态
onPause() 系统准备去启动或者恢复一个活动时候调用
onStop()在活动完全不可见的时候调用,它与onPause的区别是,如果被调用的是个对话框式的活动,onpause会被执行,而onStop不会执行
onDestroy是在活动被销毁之前,之后活动的转态变为销毁状态
onRestart由停止状态到运行状态

完整生存期:onCreate到onDestroy
可见生存期:onStart到onStop
前台生存期:onResume到onPause

举个例子:
这里的normal是普通活动
dialog是主题为@style/Theme.AppCompat.Dialog的对话框活动

normal.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this,NormalActivity.class);
                startActivity(intent);
            }
        });
        dialog.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this,DialogActivity.class);
                startActivity(intent);
            }
        });
@Override
    protected void onStart() {
        super.onStart();
        Log.e(TAG, "onStart: " );
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.e(TAG, "onResume: " );
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.e(TAG, "onPause: " );
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.e(TAG, "onStop: " );
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.e(TAG, "onDestroy: " );
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.e(TAG, "onRestart: " );
    }

运行结果:
刚进入界面时


image.png

点击normal按钮时


image.png

返回时


image.png

点击dialog按钮时


image.png

点击返回


image.png
再返回
image.png

2.切换横竖屏时的Activity生命周期

当不设置android:configChanges
1.切横屏时:
onSavedInstanceState()->onPause()->onStop()->onDestroy()->onCreate()->onStart()->onRestoreInstance()->onResume();
2.切竖屏时:执行2次
onSavedInstanceState()->onPause()->onStop()->onDestroy()->onCreate()->onStart()
->onRestoreInstance()->onResume();

设置android:configChanges="orientation"
切横竖屏只会执行一次

切换横竖屏时,想保留页面数据,可以通过重写onSavedInstanceState()实现
想恢复数据:通过重写onRestoreInstanceState()方法

相关文章

  • Android学习(二)—— 四大组件之Activity

    本文目录结构:一、活动的生命周期二、活动的启动模式三、活动间的信息传递之一 —— Intent 一、活动的生命周期...

  • Android Activity

    1. 生命周期 Andriod生命周期图:Andriod生命周期 saveInstanceState:活动进入停止...

  • app生命周期及执行的方法

    生命周期 APP的生命周期主要分为五种状态: 非运行状态; 前台非活动状态; 前台活动状态; 后台挂起状态; 执行...

  • Activity生命周期

    活动的生命周期 深入理解活动的生命周期:你的优势 可以写出更加连贯流畅的程序。 合理管理应用资源 更好的用户体验 ...

  • 活动的生命周期

    我们知道Android中的活动是可重叠的。我们每启动一个新的活动,就会覆盖当前的活动,然后点击Back就会销毁最上...

  • 活动的生命周期

    返回栈 Android中是使用任务Task来管理活动的,一个任务就是一组存放在栈里的活动集合,这个栈也被称作为Ba...

  • 活动的生命周期

  • 活动的生命周期

    wo我是标题 首先看下格式

  • 活动的生命周期

    活动的状态 一个活动通常有4中状态,分别为运行状态、暂停状态、停止状态和销毁状态,下面对其概念分别介绍。 运行状态...

  • 活动的生命周期

    Android 使用任务(Task)来管理活动,一个任务就是一组存放在栈里的活动的集合,后进先出。 一、活动状态 ...

网友评论

      本文标题:活动的生命周期

      本文链接:https://www.haomeiwen.com/subject/slethhtx.html