- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 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/
在 Android 应用程序中覆盖方法时,很多时候我们需要调用 super 方法。 在某些情况下,例如在 fragment 的 onActivityCreated() 方法中,如果未调用 super,
我在 fragment 内使用 onDestroy 来确保退出应用程序时停止处理程序(用于为按钮设置动画),如下面的代码所示: @Override public void onDestroy () {
我的代码中遇到 SuperNotCalledException 问题。 我有一个包含 NavigationDrawerFragment 的 Activity,并且此 Exception 仅发生在“MO
我正在尝试重写从 Activity 派生的类(称为 NativeActivity),这样我就可以设置我自己用 Java 创建的内容 View ,同时保留其其余功能。我必须使用 NativeActivi
我有一个 Android 应用程序,其调试版本运行良好。然而,它的发布版本,其中包括使用 ProGuard 进行混淆(配置如下所示),无法正常工作,并且总是在启动时崩溃,并显示以下日志: 01-26
我很好奇 android 如何检测我是否在我的 onCreate 方法中调用了 super.onCreate(或其他一些方法)。 我猜它使用了一个标志,并在 Activity.class 中看到了一个
这是我的代码: 第一个 Activity:: public class ImageExercise extends Activity { /** Called when the activit
在Activity 类中,Android 提供super() must be called 的运行时执行。用于覆盖生命周期回调方法。如果您忘记这样做,它会抛出 SuperNotCalledExcept
我是 android 的新用户,我已经建立了一个 android 数据库连接并创建了表应用程序,但在运行时它会产生错误。 听到一个错误: 07-15 16:25:55.404: ERROR/Andr
我正在尝试使用 developer.android.com SharedPreferences 中的代码测试 SharedPreferences .我试着稍微改变一下,因为他们说 onStop "ma
我正在使用一些传感器 - MediaRecorder 和 MediaPlayer、NotificationManager、WakeLock 和 LocationListener... 这是我的 onR
我正在处理现有的代码库。我正在尝试为 Activity 添加深层链接。但是,当我测试深层链接时,它会转到 Activity,然后加载 Fragment,然后强制关闭并显示以下错误。当我调试它时,它会上
这是我的 Android 媒体播放器代码。当我在 MediaPlayer mp = new MediaPlayer() 行断点以 Debug 模式运行时,我不知道这段代码中缺少什么。 zip 文件夹中
uncaught handler:thread main exiting due to uncaught exception android.app.SuperNotCalledException:A
我是一名优秀的程序员,十分优秀!