Возможный дубликат:
Жизненный цикл активности Android – разница между onPause () и OnStop ()
Мне было интересно – в чем разница между onCreate()
и onStart()
?
Я думаю, что onStart()
является избыточным методом. onCreate()
будет ВСЕГДА называться (по крайней мере, в моих последних двух проектах).
Может ли кто-нибудь объяснить разницу?
Взгляните на жизненный цикл деятельности
где
***onCreate()***
Вызывается, когда действие сначала создается. Здесь вы должны выполнить всю свою обычную статическую настройку: создать представления, привязать данные к спискам и т. Д. Этот метод также предоставляет вам пакет, содержащий ранее замороженное состояние активности, если оно есть. Всегда следуют 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 ....."); } }
Надеюсь, это очистит ваше замешательство.
И посмотрите здесь подробности.
Методы жизненного цикла в деталях – очень хороший пример и демонстрационное приложение, которое является очень хорошей статьей для понимания жизненного цикла.
onCreate()
при создании активности и onCreate()
только один раз в течение всего жизненного цикла Activity. Где as onStart()
вызывается, когда активность остановлена … Я имею в виду, что он перешел на задний план, и его onStop()
вызывается os. onStart()
может быть вызван несколько раз в жизненном цикле активности. Подробнее здесь