在Activity
类中,Android为重写的生命周期回调方法提供了super()
must be called的运行时实施。如果你忘记这样做,它会抛出SuperNotCalledException。
究竟是如何在Android上专门实现的?如果可能,请指出实际的源实现。
答案 0 :(得分:1)
看起来像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()");
}
}
答案 1 :(得分:0)
作为一个侧面注释的android刚刚宣布了一个新的注释,@ CallSuper会在超级被覆盖时没有调用@CallSuper注释方法时向你发出警告。
更多详情: