在 Activity
类中,Android 为重写的生命周期回调方法提供 super()
must be called 的运行时强制执行。如果您忘记这样做,它会抛出 SuperNotCalledException。
这究竟是如何在 Android 上实现的?如果可能,请指出实际的源代码实现。
最佳答案
看起来他们 clear a flag in the super methods and check that it was set :
final void performStart() {
mCalled = false;
mInstrumentation.callActivityOnStart(this);
if (!mCalled) {
throw new SuperNotCalledException(
"Activity " + mComponent.toShortString() +
" did not call through to super.onStart()");
}
}