java - android中 Activity 生命周期的父类(super class)实现是做什么的?

标签 java android android-activity superclass super

我一直在学习android编程,我注意到所有的 Activity 生命周期方法都有一个在一开始就实现的父类(super class)。

Android 文档还指出,关于生命周期方法,“在执行任何工作之前,这些生命周期方法的实现必须始终调用父类(super class)实现”。

我很好奇的是为什么这是必要的以及这些 super 类到底做了什么?

最佳答案

您可以看看Activity's source code .

例如,onCreate()方法(第879行):

protected void onCreate(Bundle savedInstanceState) {
    if (DEBUG_LIFECYCLE) Slog.v(TAG, "onCreate " + this + ": " + savedInstanceState);
    if (mLastNonConfigurationInstances != null) {
        mAllLoaderManagers = mLastNonConfigurationInstances.loaders;
    }
    if (mActivityInfo.parentActivityName != null) {
        if (mActionBar == null) {
            mEnableDefaultActionBarUp = true;
        } else {
            mActionBar.setDefaultDisplayHomeAsUpEnabled(true);
        }
    }
    if (savedInstanceState != null) {
        Parcelable p = savedInstanceState.getParcelable(FRAGMENTS_TAG);
        mFragments.restoreAllState(p, mLastNonConfigurationInstances != null
                ? mLastNonConfigurationInstances.fragments : null);
    }
    mFragments.dispatchCreate();
    getApplication().dispatchActivityCreated(this, savedInstanceState);
    mCalled = true;
}

当您使用以下内容扩展 Activity 时:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // Some stuff
}

实际上,您通过调用 super.onCreate() 来调用上述方法。

为什么需要它?这是 Android 平台的要求,因为 onCreate() 方法执行 Activity 生命周期的基本操作。

关于java - android中 Activity 生命周期的父类(super class)实现是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16215472/

相关文章:

Java - 带有列表的泛型

java - 插入记录时在 JDBC Java 中出错

android - KSOAP 2 复杂类

android - 为什么我们必须在 android list 文件中声明 Activity 和服务?

android - 刷新 Spinner

java - 将数据插入 BigQuery 表

Android - 如何检测 LinearLayout 上的单击?

java - 如何在 CharSequence 中获取精确的字符?

android - 如何获取另一个尚未开始的 Activity 的上下文?

java - 如何忽略 SOAP 响应中的不可用字段