首页 > 解决方案 > 如果您不覆盖 onCreate,默认活动是什么?

问题描述

我对 Android 和 Java(以及 OOP)都是新手,所以如果这是超级菜鸟,请原谅我。在浏览第一个应用程序的 Android 教程时,编写了以下代码:

@Override
protected void onCreate(Bundle savedInstanceState){...}

我已经读到 @Override 正在覆盖默认的 onCreate 调用,如果您不覆盖,则无法指定要使用的活动。这一切都很好,但是为了便于理解,如果在不覆盖 onCreate 的情况下 activity_main 不是,那么默认活动到底是什么?

标签: androidandroid-activitydefaultoncreate

解决方案


我想你要问的是基类onCreate方法做了什么,如果你不覆盖它会发生什么。您可以在此处查看 Activity 的源代码,或在此处查看AppCompatActivity以查看基类中的内容。请注意,应用程序中的典型实现如下所示

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // other custom setup code for your activity
}

第一次调用super.onCreate 仍然调用基类onCreate方法(您要覆盖的方法),因此您不会替换基类中的内容,而是添加特定于您正在创建的活动的自定义。对 super 的调用会执行许多您总是必须做的 Activity 设置事情。它不会将活动与任何布局文件(由setContentView调用完成)相关联,因此如果不添加调用,它不会显示 xml 文件中的任何内容setContentView。没有它会使用的默认xml 布局文件。


推荐阅读