Android 活动何时达到创建状态?

Android 活动何时达到创建状态?,android,Android,我之所以问这个问题,是因为对已创建状态的混淆: 从上的onCreate(): 您必须实现此回调,它在系统首次创建活动时触发。在创建活动时,该活动进入已创建状态。在onCreate()方法中,执行基本的应用程序启动逻辑,该逻辑在整个活动生命周期中只应发生一次 它提出了以下问题: 创建的状态是在调用onCreate()之前还是之后出现的 下面使用的创建状态常数是否与上述摘录中定义的状态的理论含义不同,即,我应该只阅读此内容,而不关注创建状态短语 在回答之前,有一个来自生命周期感知组件的Lifec

我之所以问这个问题,是因为对已创建状态的混淆:

从上的
onCreate()

您必须实现此回调,它在系统首次创建活动时触发。在创建活动时,该活动进入已创建状态。在onCreate()方法中,执行基本的应用程序启动逻辑,该逻辑在整个活动生命周期中只应发生一次

它提出了以下问题:

  • 创建的状态是在调用onCreate()之前还是之后出现的
  • 下面使用的创建状态常数是否与上述摘录中定义的状态的理论含义不同,即,我应该只阅读此内容,而不关注创建状态短语
在回答之前,有一个来自生命周期感知组件的Lifecycle.State类,在该类中,您可以看到各种状态的含义,如下所示:

     /**
     * Lifecycle states. You can consider the states as the nodes in a graph and
     * {@link Event}s as the edges between these nodes.
     */
    @SuppressWarnings("WeakerAccess")
    public enum State {
        /**
         * Destroyed state for a LifecycleOwner. After this event, this Lifecycle will not dispatch
         * any more events. For instance, for an {@link android.app.Activity}, this state is reached
         * <b>right before</b> Activity's {@link android.app.Activity#onDestroy() onDestroy} call.
         */
        DESTROYED,

        /**
         * Initialized state for a LifecycleOwner. For an {@link android.app.Activity}, this is
         * the state when it is constructed but has not received
         * {@link android.app.Activity#onCreate(android.os.Bundle) onCreate} yet.
         */
        INITIALIZED,

        /**
         * Created state for a LifecycleOwner. For an {@link android.app.Activity}, this state
         * is reached in two cases:
         * <ul>
         *     <li>after {@link android.app.Activity#onCreate(android.os.Bundle) onCreate} call;
         *     <li><b>right before</b> {@link android.app.Activity#onStop() onStop} call.
         * </ul>
         */
        CREATED,

        /**
         * Started state for a LifecycleOwner. For an {@link android.app.Activity}, this state
         * is reached in two cases:
         * <ul>
         *     <li>after {@link android.app.Activity#onStart() onStart} call;
         *     <li><b>right before</b> {@link android.app.Activity#onPause() onPause} call.
         * </ul>
         */
        STARTED,

        /**
         * Resumed state for a LifecycleOwner. For an {@link android.app.Activity}, this state
         * is reached after {@link android.app.Activity#onResume() onResume} is called.
         */
        RESUMED;

        /**
         * Compares if this State is greater or equal to the given {@code state}.
         *
         * @param state State to compare with
         * @return true if this State is greater or equal to the given {@code state}
         */
        public boolean isAtLeast(@NonNull State state) {
            return compareTo(state) >= 0;
        }
    }
/**
*生命周期状态。你可以把状态看作图中的节点。
*{@link Event}作为这些节点之间的边。
*/
@抑制警告(“弱化访问”)
公共枚举状态{
/**
*LifecycleOwner的已销毁状态。在此事件之后,此生命周期将不会分派
*任何其他事件。例如,对于{@link android.app.Activity},已达到此状态
*就在活动的{@link android.app.Activity#onDestroy()onDestroy}调用之前。
*/
摧毁,
/**
*LifecycleOwner的初始化状态。对于{@link android.app.Activity},这是
*已构造但尚未接收的状态
*{@linkandroid.app.Activity#onCreate(android.os.Bundle)onCreate}还没有。
*/
初始化,
/**
*已为LifecycleOwner创建状态。对于{@link android.app.Activity},此状态为
*在两种情况下达到:
*
    *
  • 在{@link android.app.Activity#onCreate(android.os.Bundle)onCreate}调用之后; *
  • 就在{@link android.app.Activity#onStop()onStop}调用之前。 *
*/ 创建, /** *LifecycleOwner的启动状态。对于{@link android.app.Activity},此状态为 *在两种情况下达到: *
    *
  • 在{@link android.app.Activity#onStart()onStart}调用之后; *
  • 就在{@link android.app.Activity#onPause()onPause}调用之前。 *
*/ 起动, /** *LifecycleOwner的恢复状态。对于{@link android.app.Activity},此状态为 *在调用{@link android.app.Activity#onResume()onResume}后到达。 */ 恢复; /** *比较此状态是否大于或等于给定的{@code State}。 * *@param state要与之比较的状态 *@return true,如果此状态大于或等于给定的{@code State} */ 公共布尔isAtLeast(@NonNull状态){ 返回compareTo(state)>=0; } }
我相信
CREATED
状态发生在调用
onCreate()
之后,因为CREATED意味着此时它已经在
onCreate()时被创建了
as从名称上看意味着它现在正在创建中,并且生命周期中的注释。State类对
CREATED
State意味着相同

因此,总结如下:

onCreate()
->正在创建过程中

CREATED
->已完成创建过程

来自LifeCycle state的注释的含义与前面所说的相同

/**
*LifecycleOwner的已创建状态。对于{@link android.app.Activity},此状态
*在两种情况下达到:
*
    *
  • 在{@link android.app.Activity#onCreate(android.os.Bundle)onCreate}调用之后; *
  • 就在{@link android.app.Activity#onStop()onStop}调用之前。 *

我相信
CREATED
状态发生在调用
onCreate()
之后,因为CREATED意味着此时它已经在
onCreate()时被创建了
as从名称上看意味着它现在正在创建中,并且生命周期中的注释。State类对
CREATED
State意味着相同

因此,总结如下:

onCreate()
->正在创建过程中

CREATED
->已完成创建过程

来自LifeCycle state的注释的含义与前面所说的相同

/**
*LifecycleOwner的已创建状态。对于{@link android.app.Activity},此状态
*在两种情况下达到:
*
    *
  • 在{@link android.app.Activity#onCreate(android.os.Bundle)onCreate}调用之后; *
  • 就在{@link android.app.Activity#onStop()onStop}调用之前。 *

CREATED状态发生在调用
onCreate()
之后,因为
CREATED
意味着在调用
onCreate()时它已经被创建了
从名称上看,它现在正在创建中,
生命周期中的注释。State
类对
已创建的
状态也有相同的含义。State
类似乎是
生命周期中的描述。State
类对此非常清楚。我的问题:你为什么在乎?这只是一个“我很好奇”的问题,还是你需要知道这一点的原因?@DavidWasser他们在任何地方都使用这种语言,就像在中一样,活动现在已经达到创建状态。我想弄清楚它们每次都意味着什么,现在生命周期组件正确地定义了相同的组件,因此更清楚地理解sameI的原因是我想相信
创建的
状态发生在调用
onCre之后