【发布时间】:2018-10-06 13:19:30
【问题描述】:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
当我在 MyActivity.java 中看到这个基本源代码时, onCreate() 方法只是重写。但是当我运行应用程序时,我可以看到覆盖的方法“onCreate()”运行。这怎么可能?
如果可以在该代码中运行 onCreate 方法,我认为应该有类似的代码
onCreate();
【问题讨论】:
-
它的工作方式是由于一个Activity组件的生命周期,魔术是由
super.onCreate(savedInstanceState)完成的 -
@AseemSharma 我还不明白。因为我认为 super.onCreate(savedInstanceState) 来自超类 AppCompatActivity
-
super.onCreate(savedInstanceState) 是实干家。如果您了解 OOP,那么您应该得到它。
-
它从您在 Manifest 中使用 Intent Filters action_MAIN 和 category_LAUNCHER 注册 MainActivity 的那一刻触发,它会要求主线程启动您的 MainActivity,并且启动它意味着要经历启动的活动的生命周期通过
onCreate方法。 -
这是一篇很好的文章,可以从一开始就了解事情的运作方式。 link