我很好奇Android如何检测我是否在我的super.onCreate
方法中调用了onCreate
(或某些其他方法)。
我猜它使用了一个标志,并在Activity.class中看到了一个标志boolean mCalled;
,但是不确定是否用于此检测。如果是这样,那么这使我感到困惑,因为有许多要覆盖的超级方法,但是对于那些检测是否调用了超级方法的方法,只有一个“ mCalled”标志似乎是不可能的。
谢谢你〜
最佳答案
该模式如下所示:
private boolean superCalled;
private someFunction(...) {
superCalled = false;
someMethodThatRequiresSuperToBeCalled(...);
if (!superCalled) {
throw new SuperNotCalledException();
}
}
protected void someMethodThatRequiresSuperToBeCalled(...) {
superCalled = true;
}
如果您遍历代码,您会发现该标志一次仅用于框架的一种方法。因此,即使有许多方法需要调用
super.whatever()
,它们也可以共享相同的标志。关于android - android如何获取“android.app.SuperNotCalledException”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13785860/