1
resposta

Chamando função excessivamente?

Na hora de adicionar uma transação a lista de transações, há os seguintes trechos de código: (Reduzi pedaço do código para focar na minha dúvida)

super.onCreate(savedInstanceState)

        configuraResumo()

        configuraLista()

            AlertDialog.Builder(this)
                .setTitle(R.string.adiciona_receita)
                .setView(viewCriada)
                .setPositiveButton("Adicionar") { dialog, which ->

                     val transacaoCriada = Transacao(
                        tipo = Tipo.RECEITA,
                        valor = valorFormatado,
                        data = data,
                        categoria = categoriaEmTexto)

                    transacoes.add(transacaoCriada)
                    configuraLista()
                   configuraResumo()
                }
                .setNegativeButton("Cancelar", null)
                .show()
        }
    }

este trecho de código acima é chamado quando o cliente aperta o botão de confirmação na hora de adicionar uma transação, porém este trecho de código está dentro do corpo da função onCreate()

Não sei se estou errado, mas seguindo a lógica:

Após abrir um AlertDialog,é chamada a função onPause()

Logo,

se o AlertDialog não estiver mais visível (ou seja, algum botão foi clicado e o Dialog fechado), é chamada a função onStop() e em seguida, chama-se a função onCreate().

Então por ser chamada a função onCreate() novamente, logo é chamado as respectivas funções novamente:

    configuraLista()
    configuraResumo()

Fazendo com que não precise chamar elas dentro da confirmação do AlertDialog()

Imagem seguindo minha linha de raciocínio

Estou certo disso?

1 resposta

Oi Renan, tudo bem ?

Em tese o que podemos concluir é que do onPause ele pode voltar para o onResume ou ir para o Stop e chamar onStart, o onCreate é apenas chamado quando criamos a tela, ou seja, após onDestroy ser chamado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software