4

このActivityクラスでは、Android はオーバーライドされたライフサイクル コールバック メソッドに対してsuper() 呼び出す必要があるランタイムの強制を提供します。忘れると、SuperNotCalledException がスローされます。

これは具体的にどのように Android に実装されたのでしょうか? 可能であれば、実際のソース実装を教えてください。

4

2 に答える 2

1

スーパーメソッドでフラグをクリアし、それが設定されていることを確認しているようです:

final void performStart() {
    mCalled = false;
    mInstrumentation.callActivityOnStart(this);
    if (!mCalled) {
        throw new SuperNotCalledException(
            "Activity " + mComponent.toShortString() +
            " did not call through to super.onStart()");
    }
}
于 2012-08-08T14:59:37.723 に答える