onCreate()和onStart()之间的区别?

可能重复:
Android活动生命周期 – onPause()和OnStop()之间的区别

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

我认为onStart()是一个多余的方法。 onCreate()将永远被调用(至less在我的最后两个项目)。

任何人都可以解释这个区别吗?

看看Activity的生命周期 在这里输入图像描述

哪里

 ***onCreate()*** 

在第一次创build活动时调用。 这是你应该完成所有常规静态设置的地方:创build视图,将数据绑定到列表等等。这个方法还提供了一个包含活动之前冻结状态(如果有的话)的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 ....."); } } 

希望这会消除你的困惑。

看看这里的细节。

“细节中的生命周期方法”是一个非常好的示例和演示应用程序,它是理解生命周期的非常好的文章。

在创build活动时会调用onCreate()方法,并且在整个Activity生命周期中只调用一次。 在onStart()被调用时,活动停止…我的意思是它已经到了背景,它的onStop()方法由os调用。 在Activity生命周期中onStart()可能被多次调用。 更多细节在这里