我一直在学习 android 编程,我注意到所有活动生命周期方法都有一个在开始时实现的超类。
Android 文档还说,“在执行任何工作之前,这些生命周期方法的实现必须始终调用超类实现”关于生命周期方法。
我很好奇的是为什么这是必要的,这些超类究竟做了什么?
我一直在学习 android 编程,我注意到所有活动生命周期方法都有一个在开始时实现的超类。
Android 文档还说,“在执行任何工作之前,这些生命周期方法的实现必须始终调用超类实现”关于生命周期方法。
我很好奇的是为什么这是必要的,这些超类究竟做了什么?
你可以看看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 生命周期的基本操作。
如果您的类扩展了任何其他类,并且您有实现该扩展类的方法的方法。但是你不想自己做所有的实现。你打电话给 super.your_Method_That_Has_Implementation_In_Extented_Class();
它说:在这一刻,在我扩展我的类的类中执行 myMethod 的实现。
您还可以查看本教程:http: //docs.oracle.com/javase/tutorial/java/IandI/super.html