没有 onStart() 是否可以 运行 一个 Android 应用程序?

Is it possible to run an Android app without onStart()?

我是 Android 的新手,我刚刚了解 Activity 生命周期。
到目前为止,在我制作的所有用于练习的应用程序中,我都没有使用 onStart() 方法(主要是因为我不知道它)并且这些应用程序运行得非常好。

为什么它们工作得很好?
那么我什么时候必须在我的应用程序中显式编写 onStart() 方法?

那是因为您的活动是 Activity 或 AppCompatActivity 的子类。您无需重写此方法即可使 activity 正常工作。如果您想知道何时使用该方法,您可以查看此 post:

android: when to use onStart(), onStop()?

创建时

在创建 activity 时调用,然后再也不会调用。除非你再打开activity。

开始时

在创建 activity 时调用,并且在每次恢复 activity 时再次调用(如果您 return 使用后退按钮返回)。

例子

假设我们想要显示一条吐司消息,我们将其命名为 "message"。

第一种情况

如果我们只想在创建 activity 时显示 "message" 我们在 Oncreate 中添加吐司,这就是发生的事情

如果打开 activity A ----> 将调用 Oncreate -----> 显示 "message" -----> 调用 Onstart ------>什么都没发生

如果你从 A 打开另一个 activity B 然后按回 ----> onCreate 被忽略 -----> onStart 被触发 -----> 没有任何反应。

((所以当您创建 ACTIVITY) 时,消息只显示一次)。

第二种情况

如果我们想在每次显示 activity 或每次它变得可见时显示 "message",我们在 onStart 中添加 toast,这会发生什么:

如果你打开 activity A ----> Oncreate 将被调用 -----> 没有任何反应-----> Onstart 被调用 -----> "message"已显示

如果你从 A 打开另一个 activity B 然后按回 ----> onCreate 被忽略 -----> onStart 被触发 -----> "message" 再次显示.

((所以这里会在我们创建 ACTIVITY 和返回它时显示消息))。

这就是为什么启动并不总是对应用运行很重要的原因。