首页 > 软件开发 > ANDROID >

Android Studio 之 Activity的函数生命周期

来源:互联网 2023-03-17 00:11:01 138

Android Studio 之 Activity的函数生命周期。本节介绍,在Android Studio 开发中,单个Activity的函数生命周期,尤其需要注意的是多个Activity中各个Activity的函数生命周期,以及不同形式的Activity在使用中的函数生命周期,具体如下FMt办公区 - 实用经验教程分享!

Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

工具/原料

  • Android Studio

方法/步骤

  • 1

    打开Android Studio,新建一个 Empty Activity,具体如下图FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

  • 2

    一、测试单个Activity的函数生命周期FMt办公区 - 实用经验教程分享!

    在 MainActivity 中添加各个函数,并对应添加打印信息,以便观察在函数生命周期中的调用,函数包括 onCreate(), onRestart(), onStart(), onResume(), onPause(), onStop(), onDestroy(), 具体如下图FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

  • 3

    MainActivity 脚本的具体内容如下:FMt办公区 - 实用经验教程分享!

    package com.example.xan.activitylifetest;

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    import android.content.Intent;

    FMt办公区 - 实用经验教程分享!

    import android.support.v7.app.AppCompatActivity;

    FMt办公区 - 实用经验教程分享!

    import android.os.Bundle;

    FMt办公区 - 实用经验教程分享!

    import android.util.Log;

    FMt办公区 - 实用经验教程分享!

    import android.view.MotionEvent;

    FMt办公区 - 实用经验教程分享!

    import android.widget.Toast;

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    public class MainActivity extends AppCompatActivity {

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    @Override

    FMt办公区 - 实用经验教程分享!

    protected void onCreate(Bundle savedInstanceState) {

    FMt办公区 - 实用经验教程分享!

    super.onCreate(savedInstanceState);

    FMt办公区 - 实用经验教程分享!

    setContentView(R.layout.activity_main);

    FMt办公区 - 实用经验教程分享!

    System.out.println("===== MainActivity.onCreate");

    FMt办公区 - 实用经验教程分享!

    }

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    @Override

    FMt办公区 - 实用经验教程分享!

    protected void onRestart() {

    FMt办公区 - 实用经验教程分享!

    super.onRestart();

    FMt办公区 - 实用经验教程分享!

    System.out.println("===== MainActivity.onRestart");

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    }

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    @Override

    FMt办公区 - 实用经验教程分享!

    protected void onStart() {

    FMt办公区 - 实用经验教程分享!

    super.onStart();

    FMt办公区 - 实用经验教程分享!

    System.out.println("===== MainActivity.onStart");

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    }

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    @Override

    FMt办公区 - 实用经验教程分享!

    protected void onResume() {

    FMt办公区 - 实用经验教程分享!

    super.onResume();

    FMt办公区 - 实用经验教程分享!

    System.out.println("===== MainActivity.onResume");

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    }

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    @Override

    FMt办公区 - 实用经验教程分享!

    protected void onPause() {

    FMt办公区 - 实用经验教程分享!

    super.onPause();

    FMt办公区 - 实用经验教程分享!

    System.out.println("===== MainActivity.onPause");

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    }

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    @Override

    FMt办公区 - 实用经验教程分享!

    protected void onStop() {

    FMt办公区 - 实用经验教程分享!

    super.onStop();

    FMt办公区 - 实用经验教程分享!

    System.out.println("===== MainActivity.onStop");

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    }

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    @Override

    FMt办公区 - 实用经验教程分享!

    protected void onDestroy() {

    FMt办公区 - 实用经验教程分享!

    super.onDestroy();

    FMt办公区 - 实用经验教程分享!

    System.out.println("===== MainActivity.onDestroy");

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    }

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    }FMt办公区 - 实用经验教程分享!

  • 4

    此时可以连接设备,或者使用虚拟设备进行编译测试,机子上运行效果,具体如下图FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

  • 5

    在Android Studio 的Logcat 打印中,添加一个System.out 的过滤器,方便查看各个函数接口的打印信息,具体如下图FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

  • 6

    此时 MainActivity 中函数的打印信息,即为在创建 MainActivity 时在生命周期中的打印顺序,为 onCreate --> onStart() --> onResume(),具体如下图FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

  • 7

    按下返回键,退出 MainActivity ,销毁时各个函数在生命周期中的执行顺序,为 onPause() --> onStop --> onDestroy(), 所以单个 Activity 的整个生命周期大概为 :onCreate --> onStart() --> onResume() --> onPause() --> onStop --> onDestroy(),具体如下图FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

  • 8

    二、现在来测试,两个 Activity 中,一个Activity 调用另一个 Activity ,再回到原来Activity,在退出时,两个 Activity 的生命周期。FMt办公区 - 实用经验教程分享!

    添加一个SecondActivity,代码类似 MainActivity,只是打印信息不同,以作区分,具体如下图FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

  • 9

    SecondActivity 脚本的具体内容如下:FMt办公区 - 实用经验教程分享!

    package com.example.xan.activitylifetest;

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    import android.support.v7.app.AppCompatActivity;

    FMt办公区 - 实用经验教程分享!

    import android.os.Bundle;

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    public class SecondActivity extends AppCompatActivity {

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    @Override

    FMt办公区 - 实用经验教程分享!

    protected void onCreate(Bundle savedInstanceState) {

    FMt办公区 - 实用经验教程分享!

    super.onCreate(savedInstanceState);

    FMt办公区 - 实用经验教程分享!

    setContentView(R.layout.activity_second);

    FMt办公区 - 实用经验教程分享!

    System.out.println("===== SecondActivity.onRestart");

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    }

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    @Override

    FMt办公区 - 实用经验教程分享!

    protected void onRestart() {

    FMt办公区 - 实用经验教程分享!

    super.onRestart();

    FMt办公区 - 实用经验教程分享!

    System.out.println("===== SecondActivity.onRestart");

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    }

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    @Override

    FMt办公区 - 实用经验教程分享!

    protected void onStart() {

    FMt办公区 - 实用经验教程分享!

    super.onStart();

    FMt办公区 - 实用经验教程分享!

    System.out.println("===== SecondActivity.onStart");

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    }

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    @Override

    FMt办公区 - 实用经验教程分享!

    protected void onResume() {

    FMt办公区 - 实用经验教程分享!

    super.onResume();

    FMt办公区 - 实用经验教程分享!

    System.out.println("===== SecondActivity.onResume");

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    }

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    @Override

    FMt办公区 - 实用经验教程分享!

    protected void onPause() {

    FMt办公区 - 实用经验教程分享!

    super.onPause();

    FMt办公区 - 实用经验教程分享!

    System.out.println("===== SecondActivity.onPause");

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    }

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    @Override

    FMt办公区 - 实用经验教程分享!

    protected void onStop() {

    FMt办公区 - 实用经验教程分享!

    super.onStop();

    FMt办公区 - 实用经验教程分享!

    System.out.println("===== SecondActivity.onStop");

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    }

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    @Override

    FMt办公区 - 实用经验教程分享!

    protected void onDestroy() {

    FMt办公区 - 实用经验教程分享!

    super.onDestroy();

    FMt办公区 - 实用经验教程分享!

    System.out.println("===== SecondActivity.onDestroy");

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    }

    FMt办公区 - 实用经验教程分享!

    }FMt办公区 - 实用经验教程分享!

  • 10

    在 MainActivity 函数中,添加一个点击跳转到 SecondActivity 页面的触发事件,具体如下图FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

  • 11

    MainActivity 脚本具体内容如下:FMt办公区 - 实用经验教程分享!

    package com.example.xan.activitylifetest;

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    import android.content.Intent;

    FMt办公区 - 实用经验教程分享!

    import android.support.v7.app.AppCompatActivity;

    FMt办公区 - 实用经验教程分享!

    import android.os.Bundle;

    FMt办公区 - 实用经验教程分享!

    import android.util.Log;

    FMt办公区 - 实用经验教程分享!

    import android.view.MotionEvent;

    FMt办公区 - 实用经验教程分享!

    import android.widget.Toast;

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    public class MainActivity extends AppCompatActivity {

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    @Override

    FMt办公区 - 实用经验教程分享!

    protected void onCreate(Bundle savedInstanceState) {

    FMt办公区 - 实用经验教程分享!

    super.onCreate(savedInstanceState);

    FMt办公区 - 实用经验教程分享!

    setContentView(R.layout.activity_main);

    FMt办公区 - 实用经验教程分享!

    System.out.println("===== MainActivity.onCreate");

    FMt办公区 - 实用经验教程分享!

    }

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    @Override

    FMt办公区 - 实用经验教程分享!

    protected void onRestart() {

    FMt办公区 - 实用经验教程分享!

    super.onRestart();

    FMt办公区 - 实用经验教程分享!

    System.out.println("===== MainActivity.onRestart");

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    }

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    @Override

    FMt办公区 - 实用经验教程分享!

    protected void onStart() {

    FMt办公区 - 实用经验教程分享!

    super.onStart();

    FMt办公区 - 实用经验教程分享!

    System.out.println("===== MainActivity.onStart");

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    }

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    @Override

    FMt办公区 - 实用经验教程分享!

    protected void onResume() {

    FMt办公区 - 实用经验教程分享!

    super.onResume();

    FMt办公区 - 实用经验教程分享!

    System.out.println("===== MainActivity.onResume");

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    }

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    @Override

    FMt办公区 - 实用经验教程分享!

    protected void onPause() {

    FMt办公区 - 实用经验教程分享!

    super.onPause();

    FMt办公区 - 实用经验教程分享!

    System.out.println("===== MainActivity.onPause");

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    }

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    @Override

    FMt办公区 - 实用经验教程分享!

    protected void onStop() {

    FMt办公区 - 实用经验教程分享!

    super.onStop();

    FMt办公区 - 实用经验教程分享!

    System.out.println("===== MainActivity.onStop");

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    }

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    @Override

    FMt办公区 - 实用经验教程分享!

    protected void onDestroy() {

    FMt办公区 - 实用经验教程分享!

    super.onDestroy();

    FMt办公区 - 实用经验教程分享!

    System.out.println("===== MainActivity.onDestroy");

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    }

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    @Override

    FMt办公区 - 实用经验教程分享!

    public boolean onTouchEvent(MotionEvent event) {

    FMt办公区 - 实用经验教程分享!

    if (event.getAction() == MotionEvent.ACTION_DOWN){

    FMt办公区 - 实用经验教程分享!

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

    FMt办公区 - 实用经验教程分享!

    startActivity(intent);

    FMt办公区 - 实用经验教程分享!

    Toast.makeText(this,"跳转到 Second Activity",Toast.LENGTH_SHORT).show();

    FMt办公区 - 实用经验教程分享!

    return true;

    FMt办公区 - 实用经验教程分享!

    }

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    return super.onTouchEvent(event);

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    }

    FMt办公区 - 实用经验教程分享!

    }FMt办公区 - 实用经验教程分享!

  • 12

    在编译运行前,检查 SecondActivity 是否在 AndroidManifest 中注册,没有就注册,具体如下图FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

  • 12本页面未经许可获取自百度经验
  • 13

    AndroidManifest.xml 具体内容如下:FMt办公区 - 实用经验教程分享!

    ?xml version="1.0" encoding="utf-8"?>

    FMt办公区 - 实用经验教程分享!

    manifest xmlns:android="http://schemas.android.com/apk/res/android"

    FMt办公区 - 实用经验教程分享!

    package="com.example.xan.activitylifetest">

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    application

    FMt办公区 - 实用经验教程分享!

    android:allowBackup="true"

    FMt办公区 - 实用经验教程分享!

    android:icon="@mipmap/ic_launcher"

    FMt办公区 - 实用经验教程分享!

    android:label="@string/app_name"

    FMt办公区 - 实用经验教程分享!

    android:roundIcon="@mipmap/ic_launcher_round"

    FMt办公区 - 实用经验教程分享!

    android:supportsRtl="true"

    FMt办公区 - 实用经验教程分享!

    android:theme="@style/AppTheme">

    FMt办公区 - 实用经验教程分享!

    activity android:name=".MainActivity">

    FMt办公区 - 实用经验教程分享!

    intent-filter>

    FMt办公区 - 实用经验教程分享!

    action android:name="android.intent.action.MAIN" />

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    category android:name="android.intent.category.LAUNCHER" />

    FMt办公区 - 实用经验教程分享!

    /intent-filter>

    FMt办公区 - 实用经验教程分享!

    /activity>

    FMt办公区 - 实用经验教程分享!

    activity android:name=".SecondActivity">

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    /activity>

    FMt办公区 - 实用经验教程分享!

    /application>

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    /manifest>FMt办公区 - 实用经验教程分享!

  • 14

    编译在设备上运行结果,首先创建的MainActivity的时候,函数声中周期中的执行顺序为MainActivity.onCreate --> MainActivity.onStart() --> MainActivity.onResume(),点击跳转到 SecondActivity页面的时候,两个Activity中函数在生命周期中的执行顺序为:MainActivity.onPause() -->SecondActivity.onRestart()-->SecondActivity.onStart()-->SecondActivity.onResume()-->MainActivity.onStop(),具体如下图FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

  • 15

    接着按返回,从SecondActivity 返回到 MainActivity ,两个Activity中函数在生命周期中的执行顺序为:SecondActivity.onPause()-->MainActivity.onRestart()-->MainActivity.onStart()-->MainActivity.onResume()-->SecondActivity.onStop()-->SecondActivity.onDestroy();最后再按返回键,退出MainActivity时,函数在生命周期中的执行顺为:MainActivity.onPause()-->MainActivity.onStop()-->MainActivity.onDestroy(),具体如下图FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

  • 16

    所以两个相互完全覆盖的Activity界面在整个生命周期中函数的执行总顺序为:MainActivity.onCreate -->MainActivity.onStart() -->MainActivity.onResume()-->MainActivity.onPause() -->SecondActivity.onRestart()-->SecondActivity.onStart()-->SecondActivity.onResume()-->MainActivity.onStop()-->SecondActivity.onPause()-->MainActivity.onRestart()-->MainActivity.onStart()-->MainActivity.onResume()-->SecondActivity.onStop()-->SecondActivity.onDestroy()-->MainActivity.onPause()-->MainActivity.onStop()-->MainActivity.onDestroy()FMt办公区 - 实用经验教程分享!

  • 17

    三、如果SecondActivity 的界面不完全覆盖 MainActivity ,那么这两个Activity在生命周期中,函数的执行顺行又是怎样呢FMt办公区 - 实用经验教程分享!

  • 18

    在 AndroidManifest 中给 SecondActivity 添加主题样式为 Dialog ,使得SecondActivity 的界面,不完全覆盖 MainActivity 的界面,具体修改如下图FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

  • 19

    AndroidManifest.xml 的具体内容如下:FMt办公区 - 实用经验教程分享!

    ?xml version="1.0" encoding="utf-8"?>

    FMt办公区 - 实用经验教程分享!

    manifest xmlns:android="http://schemas.android.com/apk/res/android"

    FMt办公区 - 实用经验教程分享!

    package="com.example.xan.activitylifetest">

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    application

    FMt办公区 - 实用经验教程分享!

    android:allowBackup="true"

    FMt办公区 - 实用经验教程分享!

    android:icon="@mipmap/ic_launcher"

    FMt办公区 - 实用经验教程分享!

    android:label="@string/app_name"

    FMt办公区 - 实用经验教程分享!

    android:roundIcon="@mipmap/ic_launcher_round"

    FMt办公区 - 实用经验教程分享!

    android:supportsRtl="true"

    FMt办公区 - 实用经验教程分享!

    android:theme="@style/AppTheme">

    FMt办公区 - 实用经验教程分享!

    activity android:name=".MainActivity">

    FMt办公区 - 实用经验教程分享!

    intent-filter>

    FMt办公区 - 实用经验教程分享!

    action android:name="android.intent.action.MAIN" />

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    category android:name="android.intent.category.LAUNCHER" />

    FMt办公区 - 实用经验教程分享!

    /intent-filter>

    FMt办公区 - 实用经验教程分享!

    /activity>

    FMt办公区 - 实用经验教程分享!

    activity android:name=".SecondActivity"

    FMt办公区 - 实用经验教程分享!

    android:theme="@style/Theme.AppCompat.Dialog"

    FMt办公区 - 实用经验教程分享!

    >

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    /activity>

    FMt办公区 - 实用经验教程分享!

    /application>

    FMt办公区 - 实用经验教程分享!

    FMt办公区 - 实用经验教程分享!

    /manifest>FMt办公区 - 实用经验教程分享!

  • 20

    连接设备编译运行,首先创建的MainActivity的时候,函数声中周期中的执行顺序为MainActivity.onCreate -->MainActivity.onStart() -->MainActivity.onResume(),点击跳转到 SecondActivity页面的时候,两个Activity中函数在生命周期中的执行顺序为:MainActivity.onPause()-->SecondActivity.onRestart()-->SecondActivity.onStart()-->SecondActivity.onResume(),这里由于没有完全覆盖MainActivity界面,所以 MainActivity 没有 stop,具体如下图FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

  • 21

    接着按返回,从SecondActivity 返回到 MainActivity ,两个Activity中函数在生命周期中的执行顺序为:SecondActivity.onPause()-->MainActivity.onResume()-->SecondActivity.onStop()-->SecondActivity.onDestroy(),由于之前Mainactivity 没有 Stop,所以这里MainActivity只要 Resume即可;最后再按返回键,退出MainActivity时,函数在生命周期中的执行顺为:MainActivity.onPause()-->MainActivity.onStop()-->MainActivity.onDestroy(),具体如下图FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

    Android Studio 之 Activity的函数生命周期FMt办公区 - 实用经验教程分享!

  • 22

    所以两个相互不完全覆盖的Activity界面在整个生命周期中函数的执行总顺序为:MainActivity.onCreate -->MainActivity.onStart() -->MainActivity.onResume()-->MainActivity.onPause() -->SecondActivity.onRestart()-->SecondActivity.onStart()-->SecondActivity.onResume()-->SecondActivity.onPause()-->MainActivity.onResume()-->SecondActivity.onStop()-->SecondActivity.onDestroy()-->MainActivity.onPause()-->MainActivity.onStop()-->MainActivity.onDestroy()FMt办公区 - 实用经验教程分享!

  • 23

    综上所述,在Activity不同的使用情况中,函数的在生命周期中的执行情况,可能会有所不同,在不同使用中请注意FMt办公区 - 实用经验教程分享!

  • 注意事项

    • 您的支持,是我们不断坚持知识分享的动力,若帮到您,还请帮忙投票有得;若有疑问,请留言

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!FMt办公区 - 实用经验教程分享!


    标签: Android

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码