我一直在学习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/