【问题标题】:Difference between onCreate() and onStart()? [duplicate]onCreate() 和 onStart() 的区别? [复制]
【发布时间】:2011-07-25 05:10:50
【问题描述】:

可能重复:
Android Activity Life Cycle - difference between onPause() and OnStop()

我想知道 - onCreate() 和 onStart() 方法有什么区别?

我认为onStart() 是一种多余的方法。 onCreate() 总是会被调用(至少在我最近的两个项目中)。

谁能解释一下区别?

【问题讨论】:

    标签: android android-activity oncreate onstart


    【解决方案1】:

    看一下Activity的生命周期

    在哪里

    ***onCreate()***
    

    在首次创建活动时调用。这是您应该进行所有常规静态设置的地方:创建视图、将数据绑定到列表等。此方法还为您提供了一个包含活动先前冻结状态的 Bundle(如果有的话)。 始终跟在 onStart() 之后。

    ***onStart()***
    

    当活动对用户可见时调用。 如果活动进入前台,则为 onResume(),如果它被隐藏,则为 onStop()。

    您可以编写简单的类来查看这些方法何时调用

    public class TestActivity extends Activity {
        /** Called when the activity is first created. */
    
        private final static String TAG = "TestActivity";
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            Log.i(TAG, "On Create .....");
        }
        /* (non-Javadoc)
        * @see android.app.Activity#onDestroy()
        */
        @Override
        protected void onDestroy() { 
            super.onDestroy();
            Log.i(TAG, "On Destroy .....");
        }
        /* (non-Javadoc)
        * @see android.app.Activity#onPause()
        */
        @Override
        protected void onPause() { 
            super.onPause();
            Log.i(TAG, "On Pause .....");
        }
    
        /* (non-Javadoc)
        * @see android.app.Activity#onRestart()
        */
        @Override
        protected void onRestart() {
            super.onRestart();
            Log.i(TAG, "On Restart .....");
        }
    
        /* (non-Javadoc)
        * @see android.app.Activity#onResume()
        */
        @Override
        protected void onResume() {
            super.onResume();
            Log.i(TAG, "On Resume .....");
        }
    
        /* (non-Javadoc)
        * @see android.app.Activity#onStart()
        */
        @Override
        protected void onStart() {
            super.onStart();
            Log.i(TAG, "On Start .....");
        }
        /* (non-Javadoc)
        * @see android.app.Activity#onStop()
        */
        @Override
        protected void onStop() {
            super.onStop();
            Log.i(TAG, "On Stop .....");
        }
    }
    

    希望这能消除您的困惑。

    详情请关注here。

    Lifecycle Methods in Details 是一个非常好的示例和演示应用程序,是了解生命周期的非常好的文章。

    【讨论】:

      【解决方案2】:

      onCreate() 方法在活动创建时被调用,并且在整个活动生命周期中只调用一次。 其中onStart() 在活动停止时被调用...我的意思是它已经进入后台并且它的onStop() 方法被操作系统调用。 onStart()在Activity生命周期中可能会被多次调用。More details here

      【讨论】:

      • onCreate() 方法在活动创建时被调用,onStart() 方法在活动来自onPause() 或onResume() 时被调用。
      • onCreate() ,将在两种情况下调用,一种是在首次创建活动时调用,另一种是在活动经历配置更改时调用。在我们的活动中必须执行onCreate()。 onStart() 可以多次调用。不强制实现onStart()。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-13
      • 2018-04-19
      • 2017-03-31
      • 1970-01-01
      • 1970-01-01
      • 2021-10-01
      • 2015-05-09
      相关资源
      最近更新 更多