为什么这个方法必须是一个回调方法

时间:2013-10-27 12:57:26

标签: java android callback

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

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

根据我对普通方法的理解,在这个方法的实现中,这个方法正在调用自身,所以实现将再次启动,它将再次调用自身,依此类推......这会导致无限循环的调用并开始实施此方法。

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

OR

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

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

4 个答案:

答案 0 :(得分:3)

不,它不会以无限循环结束,因为你调用超类onCreate的{​​{1}}方法。

如果你打电话给super.onCreate(),你也不会以无限循环结束。您将获得this.onCreate()

回调方法由android运行时调用,允许您挂钩java.lang.StackOverflowError的生命周期。

答案 1 :(得分:1)

  

super.onCreate(savedInstanceState);

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

这与回调无关。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

调用`super.onCreate()'调用当前类的超类中的onCreate方法。如果X扩展Y,则在X中的方法中,super.onCreate()在Y中调用onCreate()。在Y中的onCreate()完成执行后,执行将在X中的super.onCreate()之后的行恢复。

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