为什么Android Views的onCreate方法不仅仅是构造函数?

时间:2016-07-13 04:43:25

标签: java android android-view

Android onCreate方法似乎可以完成通常在构造函数中执行的所有操作。

我有一些代码以编程方式为布局添加了一些视图,并且使用onCreate方法似乎有点无意义 - 我只是为了保持一致。

    for (Contact contact : manager.getContacts()) {
        GuiContact guiContact = new GuiContact(contact, this);
        guiContact.onCreate();

        // add them to the UI
        guiContact.setLayoutParams(new ViewGroup.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.WRAP_CONTENT
        ));
        contactListLayout.addView(guiContact);
    }

为什么这个功能在onCreate而不是在构造函数中?

(如果功能在构造函数中,那么final成员会有优势。)

1 个答案:

答案 0 :(得分:4)

这是因为你永远不会自己实例化Activity。系统为您完成。为了做到这一点,它需要一个没有任何参数的构造函数。因此,最好在onCreate()中进行初始化。

此外,您在Activity方法中设置onCreate()布局,因此在构造函数中获取该布局的句柄将不起作用,并且您将无法动态地向其中添加视图