我从来没有正确理解回调函数的概念。现在我正在研究java和android编程。我遇到过这种方法。
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_main);
}
根据我对普通方法的理解,在这个方法的实现中,这个方法正在调用自身,所以实现将再次启动,它将再次调用自身,依此类推......这会导致无限循环的调用并开始实施此方法。
有人可以向我推荐一些简短易用的文档/教程等,并解释了回调方法是什么以及它们的执行流程是什么。
OR
有人可以用一种简单的方式告诉我这个方法onCreate()的执行流程,以及为什么需要调用方法本身以及这个调用实际上做了什么。
请尽快回复,我将感激不尽,因为我的工作取决于这个概念。
答案 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环境中,所以回调成为处理这种情况的常用方法。