android - 哪些情况抛出 SuperNotCalledException

标签 android exception

在 Android 应用程序中覆盖方法时,很多时候我们需要调用 super 方法。

在某些情况下,例如在 fragment 的 onActivityCreated() 方法中,如果未调用 super,将抛出 SuperNotCalledException。在其他情况下,例如在 Activity 的 onCreateOptionsMenu() 方法中,虽然官方文档(http://developer.android.com/guide/topics/ui/actionbar.html)显示了调用 super 方法的示例代码,但实际上并不是真正需要的,并且不会出现异常被抛出。

所以我的问题是,是否有任何经验法则可以用来猜测何时可能需要调用 super。

最佳答案

通常,修改对象状态的 Activity 和 fragment 生命周期回调必须调用父实现。不修改对象状态而只是返回一个对象或修改作为参数传入的回调(例如传递给 onCreateOptionsMenu()Menu)需要调用父实现。父级仅提供一个有用的默认实现(通常为空),但它可能会被完全覆盖。

要了解 SuperNotCalledException 的确切抛出位置,grep the source .

SuperNotCalledException 问题也很容易重现和修复。请记得测试您的应用。

关于android - 哪些情况抛出 SuperNotCalledException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24075254/

相关文章:

java - 断言某些参数化 vector 会在 JUnit 中抛出异常?

android - 如何使用 Stitch 在 MongoDB Atlas 上执行 "Distinct"MongoDB 查询

android - 微调器在 android 中不工作

android - 如何在 kotlin 中将 View 对象转换为我的布局

java - Eclipse 崩溃后在 Tomcat 下运行 Java 项目的问题

java - 在本地主机上抛出套接字异常,但不在网络上抛出?

android - 填充不同大小的布局

javascript - 缓存 android webview 以缩小 js 和 css 调用

haskell - 如何在 Haskell 中捕获任意异常?

c# - 如何分块化 IEnumerable<T>,而不会在失败时丢失/丢弃项目?