【发布时间】:2011-10-17 12:42:57
【问题描述】:
我对 Java 和 Android Java 之间的区别感到有些困惑。假设我有一个活动类AndroidX。没有main 函数,也没有我们所知道的AndroidX() 构造函数。我意识到onCreate()很可能初始化了AndroidX Activity,但为什么没有main?有什么区别?
【问题讨论】:
-
为什么需要
main?您打算单独运行 Activity 吗?
我对 Java 和 Android Java 之间的区别感到有些困惑。假设我有一个活动类AndroidX。没有main 函数,也没有我们所知道的AndroidX() 构造函数。我意识到onCreate()很可能初始化了AndroidX Activity,但为什么没有main?有什么区别?
【问题讨论】:
main?您打算单独运行 Activity 吗?
考虑到您的活动有很多 *main*s,并且您的清单将执行定向到其中之一。
还要考虑我们之前知道的构造函数是隐藏的,现在它总是被调用 onCreate()
够公平吗?
【讨论】:
此图可能会有所帮助。 http://developer.android.com/images/activity_lifecycle.png
在 Activity 文档中,他们详细说明了每个函数的含义(即 onCreate()、onResume() 等)。 http://developer.android.com/reference/android/app/Activity.html
【讨论】:
没有“main”,因为它假定您的应用程序正在运行或未运行。但在 android 上,您的应用可能处于暂停、停止、启动等许多其他可能的状态......
Check out this link 了解 Android Activity 生命周期的精彩概览。
【讨论】:
Android 开发者参考的Activity 页面描述了 onCreate 的工作原理。具体在这里:
onCreate(Bundle) 是您初始化活动的地方。最重要的是,在这里您通常会使用定义 UI 的布局资源调用 setContentView(int),并使用 findViewById(int) 检索该 UI 中需要以编程方式与之交互的小部件。
从某种意义上说,您可以将此方法视为 Activity 的构造函数,因为在那里处理初始化(请参阅Activity Lifecycle)。
至于 main,请认为它对您隐藏。通常,您所做的是为 UI 元素(例如按钮或文本字段)注册侦听器,然后对来自这些 UI 元素的输入进行操作。这些侦听器处理对您的方法的调用,这些方法可能会操纵数据或更改 UI 的显示方式。
【讨论】: