Я прочитал несколько блогов и посетил какой-то сайт. Я хочу знать, какое событие сработало только один раз в течение жизненного цикла. После чтения блогов я понимаю, что onCreate()
метод запускается только один раз в течение жизненного цикла. Я не знаю, прав я или нет. Теперь моя проблема в том, что я хочу запускать любое событие, которое запускалось один раз, только если я изменяю альбомную ориентацию или портретную ориентацию, чем это событие не запускается, означает после запуска активности, если пользователь меняет ориентацию, чем событие не запускается. Я хочу знать, какое событие сработало только один раз после запуска Activity. это onCreate ()
Жизненный цикл Android, какое событие запускается только один раз в течение жизненного цикла?
Ответы (3)
onCreate
и onDestroy
id срабатывают только один раз.
onCreate:
Вызывается при первом создании действия. Здесь вы должны выполнять все ваши обычные статические настройки: создавать представления, связывать данные со списками и т. Д.
onDestroy
: последний звонок, который вы получите перед тем, как ваша деятельность будет уничтожена. Это может произойти либо потому, что действие заканчивается.
Итак, поместите свой код события в onCreate. (но это зависит от ваших требований, то, что вы пытаетесь сделать, ваш код может быть изменен)
Последовательность действий:
сначала вызывается onCreate
-> Далее -> onStart
-> onResume
-> Ваша активность выполняется, чтобы показать вам ваш макет. (все, что вы поместили в свой layout.xml)
теперь, если вы нажмете кнопку HOME, она перейдет к -> onPause
-> onStop
. (Действие не уничтожает его работу в фоновом режиме). теперь снова откройте Activity, перейдите к -> onRestart
-> onStart
-> onResumme
(активность снова запущена).
теперь, если вы нажмете кнопку «Назад», тогда -> onPause
-> onStop
-> onDestroy
.
Отредактировано:
для остановки перезапуска активности при изменении ориентации
android:configChanges="orientation|keyboardHidden"
в файле манифеста Android.
<activity android:name=".MyActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name">
если вы разрабатываете для уровня API 13 или выше, вы должны использовать
android:configChanges="orientation|screenSize"
Создайте фиктивное приложение, переопределите onCreate
, onStart
, onResume
, onPause
, onDestroy
, onRestart
поместите туда Log.d("MYAPP", "onXXX called")
и посмотрите сами, что и в каком порядке вызывается.
Таким образом, вы узнаете что-то на практике раз и навсегда.
Вы можете использовать настройки в onCreate ().
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(this);
if (!prefs.getBoolean("firstTime", false)) {
// run your one time code
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("firstTime", true);
editor.commit();
}