Alguém pode me ajudar a conhecer o Bundle savedInstanceState
em onCreate(Bundle savedInstanceState)
Eu sou novato no Android. Eu tento entender isso em developer.android.com. Mas eu não sou capaz de entender. Alguém pode simplificá-lo?
122
Respostas:
Se você salvar o estado do aplicativo em um pacote configurável (normalmente dados dinâmicos e não persistentes
onSaveInstanceState
), ele poderá ser repassado paraonCreate
se a atividade precisar ser recriada (por exemplo, alteração de orientação) para que você não perca isso antes. em formação. Se nenhum dado foi fornecido,savedInstanceState
é nulo.fonte
fonte
onCreate(Bundle savedInstanceState)
você receberá oBundle
nulo quando a atividade começar pela primeira vez e será usada quando a orientação da atividade for alterada .......http://www.gitshah.com/2011/03/how-to-handle-screen-orientation_28.html
O Android oferece outra maneira elegante de conseguir isso. Para conseguir isso, precisamos substituir um método chamado
onSaveInstanceState()
. A plataforma Android permite que os usuários salvem qualquer estado da instância. O estado da instância pode ser salvo no Bundle. O pacote é passado como argumento para o método onSaveInstanceState.podemos carregar o estado da instância salva do pacote passado como argumento para o
onCreate
método Também podemos carregar o estado da instância salva noonRestoreInstanceState
método Mas deixarei isso para os leitores descobrirem.fonte
savedInstanceState
será não-null
seonSavedInstanceState()
foi chamado anteriormente. mudanças de orientação são apenas um exemplo em que isso pode ocorrer.Bundle
argumentoonCreate(Bundle)
será non-null
if e somente se o métodoActivity
tiveronSaveInstanceState
sido chamado anteriormente. Isso acontece durante as alterações de orientação ... e também ocorre quando a atividade volta após ser interrompida pelo sistema operacional e quando você aciona qualquer outra alteração de interesse no seu dispositivo.Como Dhruv Gairola respondeu, você pode salvar o estado do aplicativo usando o Bundle savedInstanceState. Estou tentando dar um exemplo muito simples que novos alunos como eu podem entender facilmente.
Suponha que você tenha um fragmento simples com um TextView e um botão. Cada vez que você clica no botão, o texto muda. Agora, altere a orientação do seu dispositivo / emulador e observe que você perdeu os dados (significa os dados alterados após clicar em você conseguiu) e o fragmento é iniciado pela primeira vez novamente. Usando o Bundle savedInstanceState, podemos nos livrar disso. Se você der uma olhada no ciclo de vida do fragmento. No fragmento Lifecylce, você verá que um método "onSaveInstanceState" é chamado quando o fragmento está prestes a ser destruído.
Portanto, podemos salvar o estado, o valor do texto alterado nesse pacote, como este
Depois de fazer a orientação, o método "onCreate" será chamado, certo? para que possamos fazer isso
Agora, você não perderá seu valor após a orientação. O valor modificado sempre será exibido.
fonte
Função onCreate (Bundle savedInstanceState) no Android:
1) Quando uma Atividade é chamada ou iniciada pela primeira vez, o método onCreate (Bundle savedInstanceState) é responsável por criar a atividade.
2) Sempre que a orientação (ou seja, da horizontal para a vertical ou vertical para horizontal) da atividade for alterada ou quando uma Atividade for encerrada com força por qualquer Sistema Operacional, o saveInstanceState, ou seja, o objeto da Classe de Pacote salvará o estado de uma Atividade.
3) Depois que a Orientação mudou, o onCreate (Bundle savedInstanceState) chamará e recriará a atividade e carregará todos os dados de savedInstanceState.
4) Basicamente, a classe Bundle é usada para armazenar os dados da atividade sempre que a condição acima ocorrer no aplicativo.
5) onCreate () não é necessário para aplicativos. Mas o motivo pelo qual é usado no aplicativo é porque esse método é o melhor lugar para colocar o código de inicialização.
6) Você também pode colocar seu código de inicialização em onStart () ou onResume () e, quando o aplicativo for carregado primeiro, funcionará da mesma forma que em onCreate ().
fonte
onCreate(Bundle)
é chamado quando a atividade é iniciada pela primeira vez. Você pode usá-lo para executar uma inicialização única, como a criação da interface do usuário.onCreate()
usa um parâmetro que é nulo ou algumas informações de estado salvas anteriormente peloonSaveInstanceState
.fonte
onCreate (Bundle savedInstanceState) é chamado e savedInstanceState não será nulo se sua Atividade e foi encerrada em um cenário (visualização visual) descrito acima. Seu aplicativo pode então pegar (capturar) os dados de SavedInstanceState e regenerar sua atividade
fonte