Может кто - нибудь помочь мне знать о Bundle savedInstanceState
в onCreate(Bundle savedInstanceState)
я новичок в Android. Я пытаюсь понять это с сайта developer.android.com. Но я не могу понять. Кто-нибудь может это упростить?
124
Ответы:
Если вы сохраняете состояние приложения в пакете (обычно это непостоянные динамические данные
onSaveInstanceState
), его можно передать обратно,onCreate
если действие необходимо воссоздать (например, изменение ориентации), чтобы вы не потеряли это предыдущее Информация. Если данные не были предоставлены,savedInstanceState
имеет значение null.источник
источник
onCreate(Bundle savedInstanceState)
вы получитеBundle
ноль, когда активность начнется в первый раз, и она будет использоваться, когда ориентация активности изменится .......http://www.gitshah.com/2011/03/how-to-handle-screen-orientation_28.html
Android предоставляет еще один элегантный способ добиться этого. Чтобы добиться этого, мы должны переопределить вызываемый метод
onSaveInstanceState()
. Платформа Android позволяет пользователям сохранять любое состояние экземпляра. Состояние экземпляра можно сохранить в Bundle. Пакет передается как аргумент методу onSaveInstanceState.мы можем загрузить сохраненное состояние экземпляра из Bundle, переданного в качестве аргумента
onCreate
методу. Мы также можем загрузить сохраненное состояние экземпляра вonRestoreInstanceState
method. Но я оставлю это читателям на усмотрение.источник
savedInstanceState
не будет,null
еслиonSavedInstanceState()
ранее был вызван. изменение ориентации - только один пример, в котором это может произойти.Bundle
аргумент, которыйonCreate(Bundle)
будет неnull
тогда и только тогда,Activity
когда егоonSaveInstanceState
метод был ранее вызван. Это происходит во время изменения ориентации ... а также происходит, когда активность возвращается после того, как ОС была убита, и когда вы запускаете любое другое интересующее изменение конфигурации на вашем устройстве.Как ответил Дхрув Гайрола, вы можете сохранить состояние приложения, используя Bundle savedInstanceState. Я пытаюсь привести очень простой пример, который такие новые ученики, как я, могут легко понять.
Предположим, у вас есть простой фрагмент с TextView и Button. Каждый раз, когда вы нажимаете кнопку, текст меняется. Теперь измените ориентацию вашего устройства / эмулятора и обратите внимание, что вы потеряли данные (это означает, что данные изменились после щелчка, которые вы получили), и фрагмент снова запускается в первый раз. Используя Bundle savedInstanceState, мы можем избавиться от этого. Если вы посмотрите на жизненный цикл фрагмента. Fragment Lifecylce вы увидите, что метод onSaveInstanceState вызывается, когда фрагмент вот-вот будет уничтожен.
Итак, мы можем сохранить состояние, которое означает измененное текстовое значение в этом пакете, например
После выполнения ориентации будет вызван метод onCreate, верно? так что мы можем просто сделать это
Теперь вы не потеряете свою ценность после ориентации. Измененное значение всегда будет отображаться.
источник
onCreate (Bundle savedInstanceState) Функция в Android:
1) При первом вызове или запуске Activity метод onCreate (Bundle savedInstanceState) отвечает за создание активности.
2) Когда когда-либо ориентация (т. Е. С горизонтальной на вертикальную или с вертикальной на горизонтальную) изменяется или когда действие принудительно завершается любой операционной системой, то saveInstanceState, т.е. объект класса Bundle, сохранит состояние действия.
3) После изменения ориентации onCreate (Bundle savedInstanceState) вызовет и воссоздает действие и загрузит все данные из savedInstanceState.
4) В основном класс Bundle используется для хранения данных активности всякий раз, когда в приложении возникает вышеуказанное условие.
5) onCreate () не требуется для приложений. Но причина, по которой он используется в приложении, заключается в том, что этот метод - лучшее место для размещения кода инициализации.
6) Вы также можете поместить свой код инициализации в onStart () или onResume (), и когда ваше приложение загрузится первым, оно будет работать так же, как в onCreate ().
источник
onCreate(Bundle)
вызывается при первом запуске действия. Вы можете использовать его для выполнения одноразовой инициализации, например, для создания пользовательского интерфейса.onCreate()
принимает один параметр, который имеет значение NULL или некоторую информацию о состоянии, ранее сохраненную вonSaveInstanceState
.источник
onCreate (Bundle savedInstanceState) вызывается, и savedInstanceState не будет иметь значения NULL, если ваша Activity была завершена в сценарии (визуальном представлении), описанном выше. Затем ваше приложение может захватить (перехватить) данные из saveInstanceState и восстановить вашу активность.
источник