0

我从来没有正确理解回调函数的概念。现在我正在学习java和android编程。我遇到过这种方法。

public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_main);
}

以我对普通方法的理解,在这个方法的实现里面,这个方法是在调用自己,所以会重新开始执行,又会重新调用自己,以此类推……导致调用和开始执行的无限循环这种方法。

有人可以建议我一些简短易懂的文档/教程等,并解释什么是回调方法以及它们的执行流程是什么。

或者

有人可以简单地告诉我这个方法 onCreate() 的执行流程,为什么需要调用该方法本身以及这个调用实际上做了什么。

请尽快回复,我将不胜感激,因为我的工作依赖于这个概念。

4

4 回答 4

3

不,它不会以无限循环结束,因为您调用onCreate了超类的方法super.onCreate()

如果你打电话this.onCreate(),你也不会以无限循环结束。你会得到一个java.lang.StackOverflowError.

回调方法由 android 运行时调用,并允许您挂钩Activity.

于 2013-10-27T13:00:47.793 回答
1

super.onCreate(savedInstanceState);

onCreate将在类的方法中执行代码Activity(您当前在 的子类中Activity,因此Activity是您的超类)。您这样做是为了设置一些已经在此处定义的基本功能。

这与回调无关。

于 2013-10-27T13:01:07.317 回答
1

它不调用自己。它调用super.onCreate(),从而调用onCreate()其超类的方法。

于 2013-10-27T13:01:15.833 回答
1

调用 `super.onCreate()' 调用当前类的超类中的 onCreate 方法。如果 X 扩展了 Y,那么在 X 中的一个方法中,super.onCreate() 调用 Y 中的 onCreate()。在 Y 中的 onCreate() 执行完毕后,将继续执行 X 中的 super.onCreate() 之后的行。

回调方法是一个不同的问题。当您希望编写的代码被某种框架(例如 Android)调用时,您可以使用回调方法,通常是在某些事件发生时。在这种情况下,当创建引用的任何内容时,它都会调用您的代码——这使您的代码有机会执行特定于您的应用程序的事情。通常很难知道这样的事情何时会发生,尤其是在像 Android 这样的 GUI 环境中,因此回调成为处理这种情况的常用方法。

于 2013-10-27T13:24:44.803 回答