【问题标题】:What is the difference between the Android constructor and onCreate()?Android构造函数和onCreate()有什么区别?
【发布时间】:2011-10-17 12:42:57
【问题描述】:

我对 Java 和 Android Java 之间的区别感到有些困惑。假设我有一个活动类AndroidX。没有main 函数,也没有我们所知道的AndroidX() 构造函数。我意识到onCreate()很可能初始化了AndroidX Activity,但为什么没有main?有什么区别?

【问题讨论】:

标签: java android


【解决方案1】:

考虑到您的活动有很多 *main*s,并且您的清单将执行定向到其中之一。

还要考虑我们之前知道的构造函数是隐藏的,现在它总是被调用 onCreate()

够公平吗?

【讨论】:

    【解决方案2】:

    此图可能会有所帮助。 http://developer.android.com/images/activity_lifecycle.png

    在 Activity 文档中,他们详细说明了每个函数的含义(即 onCreate()、onResume() 等)。 http://developer.android.com/reference/android/app/Activity.html

    【讨论】:

    • 如何从这个公认的答案中理解 Android 构造函数和 onCreate() 有什么区别
    【解决方案3】:

    没有“main”,因为它假定您的应用程序正在运行或未运行。但在 android 上,您的应用可能处于暂停、停止、启动等许多其他可能的状态......

    Check out this link 了解 Android Activity 生命周期的精彩概览。

    【讨论】:

      【解决方案4】:

      Android 开发者参考的Activity 页面描述了 onCreate 的工作原理。具体在这里:

      onCreate(Bundle) 是您初始化活动的地方。最重要的是,在这里您通常会使用定义 UI 的布局资源调用 setContentView(int),并使用 findViewById(int) 检索该 UI 中需要以编程方式与之交互的小部件。

      从某种意义上说,您可以将此方法视为 Activity 的构造函数,因为在那里处理初始化(请参阅Activity Lifecycle)。

      至于 main,请认为它对您隐藏。通常,您所做的是为 UI 元素(例如按钮或文本字段)注册侦听器,然后对来自这些 UI 元素的输入进行操作。这些侦听器处理对您的方法的调用,这些方法可能会操纵数据或更改 UI 的显示方式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-13
        • 1970-01-01
        • 2011-10-23
        相关资源
        最近更新 更多