在Activity
类,Android提供运行时执行的是super()
必须调用被替代的生命周期回调方法。 如果你忘记了你这样做,它抛出SuperNotCalledException。
究竟这怎么具体实现在Android? 请点我实际的代码实现,如果可能的。
在Activity
类,Android提供运行时执行的是super()
必须调用被替代的生命周期回调方法。 如果你忘记了你这样做,它抛出SuperNotCalledException。
究竟这怎么具体实现在Android? 请点我实际的代码实现,如果可能的。
看起来他们在中超的方法清除标志并检查其设置 :
final void performStart() {
mCalled = false;
mInstrumentation.callActivityOnStart(this);
if (!mCalled) {
throw new SuperNotCalledException(
"Activity " + mComponent.toShortString() +
" did not call through to super.onStart()");
}
}
作为一个侧面说明机器人刚刚宣布了新的注释,@CallSuper那滴你只要当它被overidden超级不叫的@CallSuper批注的方法警告。
更多细节:
http://tools.android.com/tech-docs/support-annotations