É uma boa prática recarregar um Activity
no Android ?
Qual seria a melhor maneira de fazer isso? this.finish
e depois this.startActivity
com a atividade Intent
?
android
android-activity
hpique
fonte
fonte
Respostas:
Você pode simplesmente usar
para atualizar um
Activity
de dentro de si.fonte
para quem não quer ver o método piscar após recrte () , basta usar
fonte
É isso que faço para recarregar a atividade depois de alterar o retorno de uma alteração de preferência.
Isso essencialmente faz com que a atividade seja redesenhada.
Atualizado: A melhor maneira de fazer isso é chamar o
recreate()
método. Isso fará com que a atividade seja recriada.fonte
Vi respostas anteriores que foram fornecidas para recarregar a atividade usando o Intent. Isso funcionará, mas você também pode fazer o mesmo usando o método recreate () fornecido na própria classe Activity.
Em vez de escrever isso
// Atualizar a atividade principal ao fechar a caixa de diálogo
Isso pode ser feito escrevendo apenas isso
fonte
recreate()
foi a solução para mim - "reiniciar" a atividade não funcionou para mim, pois iniciei a atividade usando "StartActivityForResult" e interrompeu o comportamento.simplesmente use
isso acionará o método onCreate na atividade
fonte
Eu precisava atualizar uma lista de mensagens em um dos meus aplicativos às pressas, portanto, acabei de executar uma atualização da minha atividade principal da interface do usuário antes de fechar a caixa de diálogo em que estava. Tenho certeza de que há maneiras melhores de fazer isso também.
fonte
O Android inclui um sistema de gerenciamento de processos que lida com a criação e destruição de atividades que nega amplamente qualquer benefício que você veria ao reiniciar manualmente uma atividade. Você pode ver mais informações sobre isso em Fundamentos de aplicativos
O que é uma boa prática é garantir que seus métodos onPause e onStop liberem todos os recursos dos quais você não precisa se apegar e use onLowMemory para reduzir suas necessidades de atividades ao mínimo absoluto.
fonte
Comece com uma intenção igual
activity
e feche oactivity
.fonte
em alguns casos, é a melhor prática; em outros, não é uma boa ideia orientada ao contexto, se você optar por fazê-lo, usando a seguinte é a melhor maneira de passar de uma atividade para os filhos dela:
a coisa é sempre que você termina () de activityIWishToRun e retorna à sua atividade de viver
fonte
Recarregar toda a sua atividade pode ser uma tarefa pesada. Basta colocar a parte do código que deve ser atualizada no ( kotlin ):
Java:
E chame " onResume () " sempre que necessário.
fonte
Não acho que seja uma boa ideia ... seria melhor implementar um método mais limpo. Por exemplo, se sua atividade tiver um formulário, o método mais limpo poderá limpar cada widget no formulário e excluir todos os dados temporários. Eu acho que é isso que você deseja: restaurar a atividade ao seu estado inicial.
fonte
Depois de experimentar isso por um tempo, não encontrei consequências inesperadas ao reiniciar uma atividade. Além disso, acredito que isso é muito semelhante ao que o Android faz por padrão quando a orientação muda, então não vejo um motivo para não fazê-lo em circunstâncias semelhantes.
fonte
eu tenho o mesmo problema
esse código funciona para mim. Api Android 17
fonte
Em uma atividade, você pode chamar
recreate()
para "recriar" a atividade (API 11+)fonte
Eu tive outra abordagem, como: definir
launchMode
minha atividade comosingleTop
e sem ligarfinish()
, apenasstartActivity(getIntent())
fará o trabalho. Só tem que se preocupar com os novos dados emonCreate()
eonNewIntent
. À maneira de Sush, o aplicativo pode piscar como AMAN SINGH disse. Mas a abordagem de AMAN SINGH ainda criará uma nova atividade que, de alguma forma, é desnecessária, mesmo que ele tenha corrigido o problema de 'piscar', eu acho.Tarde demais para esta pergunta, mas se alguém está procurando uma solução, aqui está ela.
fonte
Após o login, tive o mesmo problema, então usei
fonte
eu usei isso e funciona bem sem
finish()
fonte
para mim, está funcionando, não está criando outros Intents e, no mesmo, os novos dados carregados.
fonte