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()
可能被多次调用。 更多细节在这里