Activity : 生命周期

安卓基础知识之Activity篇(一):Activity生命周期 安卓基础知识之Activity篇(一):Activity生命周期 安卓基础知识系列旨在简明扼要地提供面试或工作中常用的基础知识,让对安卓还不太熟悉的小伙伴更快地入门。同时自己在工作中,也没法完全记住所有的基础细节,写这样的系列文章,可以让自己形成一个更完备的知识体系,同时给自己日后留个知识参考。 开始的开始 安卓四大组件中,最常用的组件莫过于我们的Activity组件。安卓程序员每天都在直接或间接地接触着Activity,所以Activity基础知识的重要性不言而喻。 正文 一. 正常情况下的生命周期 阅读详情

Activity的生命周期主要分为7个阶段,每个阶段都有一个对应的回调方法:

1、onCreate()

当Activity第一次被创建时调用,在这个方法中要做Activity的初始化操作,比如 加载布局、绑定事件等。

onCreate()执行后当前Activity的状态为:不可见,不可交互。

2、onStart()

当Activiy要由不可见变为可见时调用。

onStart()执行后当前Activity的状态为:可见,不可交互。

3、onResume()

当Activiy准备好和用户交互时调用,调用后该Activity一定位于返回栈的栈顶。

onResume()执行后当前Activity的状态为:可见,可交互。

4、onPause()

这个方法在系统准备去启动或者恢复另一个Activity的时候调用。通常会在这个方法中将一些消耗 CPU的资源释放掉,也可以保存一些当前Activity的关键数据,以便以后需要恢复当前Activity时使用。需要注意的是,这个函数执行完以后,新的Activity才会创建,所以在这个方法中不建议执行太耗时的代码。

onPause()执行后当前Activity的状态为:可见,不可交互。

5、onStop()

这个方法在Activity完全不可见的时候调用。它和 onPause()方法的主要区别在于,如 果启动的新Activity是一个对话框式的Activity,那么 onPause()方法会得到执行,而 onStop() 方法并不会执行。 原因是对话框式的Activity一般是非全屏的,用户仍然可以看到对话框下面的Activity的部分界面,如果这时执行Activity的onStop() 方法的话,用户会发现对话框下面的Activity界面消失了,会影响用户体验。

onStop()执行后当前Activity的状态为:不可见,不可交互。

6、onDestroy()

这个方法在活动被销毁之前调用,调用之后之后活动的状态将变为销毁状态。 

7、onRestart()

这个方法在活动由停止状态变为运行状态之前调用,也就是活动被重新启动了。


7种状态的转换关系可以参照下图:



另外还有一个金字塔型的流程图:



【举个栗子】

1、AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.activitydemo" >

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" >
        <activity android:name=".Activity1" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".Activity2" >
        </activity>
        <activity android:name=".Activity3" android:theme="@style/Theme.AppCompat.Dialog" >
        </activity>
    </application>
    
</manifest>

2、Activity1.java

package com.activitydemo;

import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class Activity1 extends AppCompatActivity implements View.OnClickListener, DialogInterface.OnClickListener {
    private Button buttonOpenActivity2, buttonOpenActivity3, buttonOpenAlertDialog;
    private AlertDialog.Builder builder;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_activity1);
        Log.i("INFO", "Activity1: onCreate");

        buttonOpenActivity2 = (Button) findViewById(R.id.btn_act1_1);
        buttonOpenActivity2.setOnClickListener(this);
        buttonOpenActivity3 = (Button) findViewById(R.id.btn_act1_2);
        buttonOpenActivity3.setOnClickListener(this);
        buttonOpenAlertDialog = (Button) findViewById(R.id.btn_act1_3);
        buttonOpenAlertDialog.setOnClickListener(this);

        builder = new AlertDialog.Builder(this);
        builder.setTitle("标题栏");
        builder.setMessage("这是一个Alert对话框");
        builder.setPositiveButton("确定", this);
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.i("INFO", "Activity1: onStart");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.i("INFO", "Activity1: onResume");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.i("INFO", "Activity1: onPause");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.i("INFO", "Activity1: onStop");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.i("INFO", "Activity1: onDestroy");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.i("INFO", "Activity1: onRestart");
    }

    @Override
    public void onClick(View v) {
        Intent intent;
        switch(v.getId()) {
            case R.id.btn_act1_1:
                intent=new Intent(this, Activity2.class);
                startActivity(intent);
                break;
            case R.id.btn_act1_2:
                intent=new Intent(this, Activity3.class);
                startActivity(intent);
                break;
            case R.id.btn_act1_3:
                builder.show();
                break;
            default:
                break;
        }
    }

    @Override
    public void onClick(DialogInterface dialog, int whichButton) {
    }
}

3、Activity2.java

package com.activitydemo;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class Activity2 extends AppCompatActivity implements View.OnClickListener {
    private Button buttonOpenActivity1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_activity2);
        Log.i("INFO", "Activity2: onCreate");

        buttonOpenActivity1 = (Button) findViewById(R.id.btn_act2_1);
        buttonOpenActivity1.setOnClickListener(this);
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.i("INFO", "Activity2: onStart");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.i("INFO", "Activity2: onResume");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.i("INFO", "Activity2: onPause");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.i("INFO", "Activity2: onStop");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.i("INFO", "Activity2: onDestroy");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.i("INFO", "Activity2: onRestart");
    }

    @Override
    public void onClick(View v) {
        Intent intent=new Intent(this, Activity1.class);
        startActivity(intent);
    }
}

4、Activity3.java

package com.activitydemo;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;

public class Activity3 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_activity3);
        Log.i("INFO", "Activity3: onCreate");
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.i("INFO", "Activity3: onStart");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.i("INFO", "Activity3: onResume");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.i("INFO", "Activity3: onPause");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.i("INFO", "Activity3: onStop");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.i("INFO", "Activity3: onDestroy");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.i("INFO", "Activity3: onRestart");
    }
}

5、layout_activity1.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Button
        android:id="@+id/btn_act1_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="跳转到Activity2(全屏)"/>
    <Button
        android:id="@+id/btn_act1_2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="跳转到Activity3(非全屏)"/>
    <Button
        android:id="@+id/btn_act1_3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="打开对话框"/>

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_vertical">
        <TextView
            android:text="Activity 1"
            android:textSize="30dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"/>
    </LinearLayout>
</LinearLayout>

6、layout_activity2.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Button
        android:id="@+id/btn_act2_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="返回Activity1"/>

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_vertical">
        <TextView
            android:text="Activity 2"
            android:textSize="30dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"/>
    </LinearLayout>
</LinearLayout>

7、layout_activity2.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:text="Activity 3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal" />
</LinearLayout>


【运行结果】
1、启动

Activity1: onCreate
Activity1: onStart
Activity1: onResume

2、跳转到ACTIVITY2

Activity1: onPause
Activity2: onCreate
Activity2: onStart
Activity2: onResume
Activity1: onStop

3、从ACTIVITY2返回ACTIVITY1
Activity2: onPause
Activity1: onCreate
Activity1: onStart
Activity1: onResume
Activity2: onStop

4、跳转到ACTIVITY3

Activity1: onCreate
Activity1: onStart
Activity1: onResume
Activity1: onPause
Activity3: onCreate
Activity3: onStart
Activity3: onResume

5、从ACTIVITY3返回ACTIVITY1
Activity3: onPause
Activity1: onResume
Activity3: onStop
Activity3: onDestroy

6、打开对话框(没有LOG输出)
7、从对话框返回ACTIVITY1(没有LOG输出)

除了界面切换时Activity会发生生命周期的转换之外,一些系统操作也会发生,比如:返回桌面时,锁屏时,横屏竖屏切换时等。
1、按桌面按钮返回桌面时:
Activity1: onPause
Activity1: onStop
从桌面再次打开APP时:
Activity1: onRestart
Activity1: onStart
Activity1: onResume
2、锁屏时:
Activity1: onPause
Activity1: onStop
解锁时:
Activity1: onRestart
Activity1: onStart
Activity1: onResume
3、横屏竖屏切换时(Ctrl + F12)
Activity1: onPause
Activity1: onStop
Activity1: onDestroy
Activity1: onCreate
Activity1: onStart
Activity1: onResume



除了上面列出的常见情况外,在不同的手机厂商开发的OS系统下,Activity表现出的生命周期可能也有差别,这时可以通过打印Log来确认。



        
Android面试:横竖屏切换时候Activity的生命周期 Activity生命周期(有七个生命周期组合): onCreate(),onStart(),onResume(),onPause(),onStop(),onDestroy(); onCreate、onStart、onResume:启动应用程序onPause、onStop:失去焦点onRestart、onStart、onResume:重新获得焦点onPause、onStop、onDest 阅读详情

相关推荐

基于CAT的VBM和SBM计算学习笔记(二)感兴趣区(ROI)&全脑体积(TIV)

本文介绍了用cat12运算VBM前,如何抓取ROI信息;运算VBM后,如何转化ROI文件和提取全脑体积,为之后的统计分析做好准备。t=N7T8基于CAT的VBM和SBM计算学习笔记(一)VBMhttps://mp.youkuaiyun.com/mp_blog/creation/editor/140665644。

Rose9614的博客 4358

Android~ViewBinding使用学习(1)

activityBinding = MainActivityBinding.inflate(getLayoutInflater());setContentView(activityBinding.getRoot());activityBinding.container.setBackgroundColor(Color.DKGRAY);if (savedInstanceState == null) {getSupportFragmentManager().beginTransaction().replace(

erghtt的博客 931

ADS谐波平衡仿真自动优化报错?三步搞定HB控件设置(附常见错误排查)

本文针对ADS谐波平衡仿真在自动优化中常见的报错问题,提供了三步核心排查法。首先检查并禁用HB控件中可能导致冲突的小信号仿真模式,其次合理化仿真频率与扫描参数设置,最后审视优化变量与目标的定义。通过精准配置HB控件以适配自动优化流程,能有效解决大多数仿真失败问题,确保非线性电路设计顺利进行。

c2d3e4f的博客 787

【Android 源码分析】Activity生命周期之onDestroy

ActivityThread::performDestroyActivity -- onDestroy流程WindowManagerImpl::removeViewImmediate -- UI处理ActivityClient::activityDestroyed -- SystemService 进程处理。

隔壁小王的博客 2946

基于相位检测与锁相环的DIY超声波风速仪设计与实现

相位检测是信号处理中的一项基础技术,它通过测量两个周期信号之间的相位差来获取信息。其核心原理在于,当信号在介质中传播时,外部因素(如风速)会改变其传播速度,从而导致接收端信号的相位发生偏移。锁相环(PLL)是实现高精度相位检测的关键电路,它能动态调整本地振荡器的频率,以跟踪并锁定输入信号的相位,从而将微小的相位变化转换为易于测量的电压信号。这项技术的工程价值在于其对电路精度要求相对较低,鲁棒性好,非常适合低成本、高灵敏度的测量应用。在气象监测、工业传感和消费电子等领域,相位检测技术被广泛用于风速风向测量、位

weixin_29540599的博客 387

MacBook 本地化部署 Dify 指南

dify 怎么安装部署 有哪些坑 !

weixin_44542598的博客 1522

Activity生命周期onDestroy

介绍Activity生命周期的文章网上有很多了。 本文重点介绍下onDestroy执行的一些场景。 先看下生命周期流程图 容易被开发者忽略的就是,onDestroy方法,在App被强制杀死时,是不会执行的。 最近集成第三方sdk时遇到一个现象,通过判断onDestroy方法执行,来避免了重大bug。 例子: ActivityA 是我项目的主界面 ActivityB 是第三方sdk项目主界面 Ac...

weixin_33881753的博客 1673

29、5G PUCCH格式及资源配置详解

本文详细解析了5G通信系统中的物理上行控制信道(PUCCH)的不同格式及其资源配置方案。PUCCH负责传输上行控制信息(UCI),包括混合自动重传请求(HARQ)确认信息、调度请求(SR)和信道状态信息(CSI)等。文章从PUCCH的基本概念出发,深入分析了格式0到格式4的特点、编码调制方式、干扰随机化机制以及适用场景,并探讨了PUCCH资源集的配置方法和上行控制信令在PUSCH上的传输机制。通过对比不同格式的传输能力、干扰随机化方式和频率跳变能力,为读者提供了选择合适PUCCH格式的决策依据。最后,文章总

oil88的博客 252

安卓笔记6.Activity生命周期与启动模式

1、onCreate()回调方法系统首次创建 Activity 时触发,同时还以Bundle形式存储以前的状态。2、onRestart()回调方法重新启动Activity调用,该Activity在堆栈中,而不是创建一个新Activity。3、onStart()回调方法当 Activity 进入“已开始”状态时,系统会调用此回调。调用onStart()方法使Activity对用户可见,因为应用会为 Activity 进入前台并支持互动做准备。

justin02191004的博客 278

多体动力学分析软件:SIMPACK_(17).SIMPACK高级编程与脚本

自定义力和约束可以用于模拟更复杂和现实的物理场景。SIMPACK 提供了接口,允许用户通过 Python 脚本来实现自定义力和约束。以下是一个示例,展示如何定义一个自定义力函数并应用于模型。# 定义自定义力函数"""自定义力函数:param t: 时间:param position: 位置:param velocity: 速度:return: 力"""# 创建一个新的 SIMPACK 模型# 添加一个刚体# 添加一个关节# 添加一个自定义力# 设置仿真参数# 运行仿真。

kkchenjj的博客 1421

一分钟理解 “熔断“, “限流“ 与 “降级“

熔断,本质是一种“故障隔离”机制,用于当某个依赖服务出现持续故障(如响应超时、错误率飙升)时,暂时切断对该服务的调用,避免故障扩散到整个系统,防止“雪崩效应”;待依赖服务恢复正常后,再逐步恢复调用。其核心逻辑参考了现实中的“电路保险丝”——电路过载时,保险丝熔断,切断电路,保护电器不被烧毁;故障排除后,更换保险丝,电路恢复正常。闭合状态(Closed):正常状态,请求可以正常调用依赖服务,同时监控调用的错误率、超时率等指标。打开状态(Open)

h a 6 6 6 c k 为 你解决复杂难题! 1456

三分钟教你完全掌握Activity的生命周期

Activity的生命周期 什么是Activity? 当用户浏览、退出和返回应用时,应用中的 Activity 实例会在其生命周期的不同状态间转换。 Activity类会提供许多回调,这些回调会让 Activity 知晓某个状态已经更改:系统正在创建、停止或恢复某个 Activity,或者正在销毁该Activity 所在的进程。 在生命周期回调方法中,我们可以声明用户离开和再次进入 Acti...

木头人i 1330

ANSYS2022R1——安装源文件下载和安装教程——软件管家

14.当提示输入安装目录:#3时,①点击【浏览】,②选安装包解压后的【ANSYS2022R1_WINX64_Disk2】文件夹中【ANSYS2022R1_WINX64_Disk3】文件夹,③点击【选择文件夹】,④点击【OK】。12.当提示输入安装目录:#2时:①点击【浏览】,②选安装包解压后的【ANSYS2022.R1(64bit)】文件夹中的【ANSYS2022R1_WINX64_Disk2】文件夹,③点击【选择文件夹】,④点击【OK】。】②点击【OK】③点击【OK】。

qq_15963745的博客 2325

安卓开发:Activity的生命周期

众所周知,Activity是安卓的门面担当,由Activity调用setContentView()方法,加载某个xml文件,最后将内容显示给用户。是用户直接操作应用程序的类。Activity的直接父类是ContextThemeWrapper,最“祖宗的”类是:Context。也就是说Activity本身就是一个“上下文”。“上下文”相当于“宿主”,我们要用Toast【吐司类】或者Dialog【弹出窗

new_Aiden的博客 507

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

面试:Android横竖屏切换Activity的生命周期

1、新建一个能打印生命周期的Activity并运行 onCreate: onStart: onResume: 2、切换横屏 onConfigurationChanged: //当Activity可能被销毁时回调,供app暂存数据 onPause: onSaveInstanceState: onStop: onDestroy: onCreate: onStart: onRestoreInstanceState: //Activity被销毁后重新运行时回调 onResume: 3、切换竖

王温暖的博客 1635

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Android总结:Activity的生命周期

一、Activity的基本概念   Activity是Android的四大组件之一,它是一种可以包含用户界面的组件,主要用于和用户进行交互,比如打电话,照相,发送邮件,或者显示一个地图!Activity用于显示用户界面,用户通过Activity交互完成相关操作 , 一个App允许有多个Activity。 二、Activity的生命周期   Activity生命周期是每一个Android开发者都必须...

weixin_42440314的博客 322

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Activity初级:Activity生命周期、service生命周期

Activity生命周期: 通过方法调用实现Activity状态的迁移 创建---->运行 onCreate onStart onResume 运行---->关闭/销毁 onPause onStop onDestroy 运行---->暂停 onPause ---->恢复 onR...

weixin_34205076的博客 97

Android问题:Activity生命周期事件

四状态:活跃、暂停、停止、销毁。 活跃:用户启动,在前台运行; 暂停:运行且可见,但是被某通知或者事件覆盖掉了,用户可以看到activity但是不能与之交互; 停止:被启动的其他activity隐藏掉了,应用程序无法向用户展示任何有意义的内容; 死亡:activity从来没有启动,或者activity被终止了,可能是因为内存不足或者其他原因。 onCreate()和onDestr

Kid_U_ForFun的专栏 3195

android知识点:Activity的生命周期

应用程序(或Activity)执行的状态称为进程(progress)。在 Android操作系统中,每个应用程序都是一个进程。Android框架会维护一个唯一的Activity历史记录堆栈,并观察每个应用程序进程。同时,系统平台会依照系统的内存使用情况和Activity的状态来管理系统内存。Activity类别除了负责运行程序流程与操作系统界面组件外,最重要的就是它提供了开发者控制进程生命周期的函

生命在于折腾 1597

横竖屏切换时候activity的生命周期,重要参数:android:configChanges

在一个Activity中可以指定参数android:ConfigChanges,用于捕获手机状态的改变。在AndroidManifest的Activity中添加了android:configChanges属性,目的是当所指定属性(Configuration Changes)发生改变时,通知程序调用onConfigurationChanged()函数。 一般在AndroidManifest.x

学习记录 2136

横竖屏切换时候activity的生命周期 android:configChanges

<br /><br />1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次<br /> <br />2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次<br /> <br />3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重

青峰专栏 1万+

Android基础知识(五):Activity的生命周期

Android的Activity生命周期 一、认识Activity Android系统中是通过Activity栈的方式来管理Activity的,而Activity自身则是通过生命周期的方法管理Activity的创建与销毁。 Android中的Activity是可以层叠的,每启动一个新的Activity,就会覆盖在原Activity之上,销毁最上面的Activity,下面的Activity就会重新显...

weixin_38196407的博客 1325

基础总结篇之一:Activity生命周期

子曰:溫故而知新,可以為師矣。《論語》 学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就完全掌握,那基本不大可能,所以我们需要经常回过头再仔细研读几遍,以领悟到作者的思想精髓。 近来回顾了一下关于Activity的生命周期,参看了相关书籍和官方文档,也有了不小的收获,对于以前的认知有了很大程度上的改善,在这里和大家分享一下。 熟悉javaEE的朋友们都了解servlet技术,

LiuHe 57万+

Android activity详解二:Activity的生命周期

转载地址:https://blog.youkuaiyun.com/niu_gao/article/details/7101178 管理Activity的生命周期   通过实现activity的生命周期回调方法来管理你的activity,是创造既稳定又灵活的activity的关键。Activity的生命周期直接受到相关的其它activity和它的任务以及所在栈的影响。 一个activity可生存在三种基本...

newarow的专栏 222

Android基础:屏幕旋转Activity生命周期解析(含demo)

目录Activity简介Activity的生命周期验证生命周期的执行总结 Activity简介 Activity中文意思“活动”,是Android中四大组件之一,主要作用于用户交互、页面展示。可以理解为用户打开Android手机上的任意一个应用的任何页面都有一个Activity。每个Activity都有自己的生命周期,从用户打开应用,到切换应用页面,到退回桌面,到完全推出应用这个过程都伴随这Act...

whale的博客 3147
下一篇: Activity : 状态保存与恢复
暗暗笑
博客等级 码龄20年 1粉丝 4原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值