android - Android 是如何实现对 SuperNotCalledException 的检查的?

标签 android oop inheritance super android-lifecycle

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()");
    }
}

关于android - Android 是如何实现对 SuperNotCalledException 的检查的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11867246/

相关文章:

android - 是否可以缩放 TimePickerDialog(或对话框)?

javascript - 理解javascript继承和node.js util继承函数示例

c# - 有类之类的东西可以实现吗?

c++ - 如何让编译器为派生类选择方法的非模板版本?

android - 无法在 Netbeans 中打开现有项目

Android Sqlite 单例数据库文件流更新失败

java - 来自 DialogFragment 的 Twitter 回调 URL

c++ - 细粒度访问说明符 C++

java - Guice 辅助注入(inject)过度使用替代方案,依赖注入(inject)与非 DI 构造函数

c# - 无法在静态类上调用 GetType()