Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

onResume ou onActivityResult?

Em um projeto com Room/Sqlite utilizamos o onResume ou onActivityResult?

A pergunta é porque com o onActivityResult o id se for verificado quando acabo de cria-lo aparece como 0. Impactando na edição pós criação, movimentação etc...

2 respostas
solução!

Usar onResume ou onActivityResult não tem relação com Room ou SQLite. O onResume é chamado logo antes da sua Activity ir para o primeiro plano, então é útil para lógicas que devem ser executadas sempre que a Activity for "exibida" pro usuário.

Já o onActivityResult é chamado logo que a activity iniciada com startActivityForResult for destruída. Considere o seguinte esquema:

Activity 1 na tela, e dispara Activity 2 usando startActivityForResult. Quando a Activity 2 for destruída, voltaremos para a Activity 1. Nesse momento, será chamado o onActivityResult na Activity 1.

O onActivityResult é interessante para uma activity "saber" o que aconteceu na activity iniciada por ela. No caso, poderíamos saber na activity 1 o que houve na activity 2 por meio de um Result.

Legal Felipe compreendi. Sobre a explicação de quando o onResume e o onActivity estão iniciando fica mais facil de entender o que fazer, por questão de lógica então é usado o onResume valeu! Bom na tratativa que estou falando é que na hora que volto para a "Activity 1" com o Result estou criando os dados (conforme o curso) e atualizando o adapter. Os dados criados estavam com o id = 0, assim se tentasse move-los (trocar a posição, com o helperCallBack) com esses dados não eram realizado as ações. Ai surgiu a duvida se deviamos voltar para com o result e gravar la, ou se no caso de "lógca" o onResume é mais apropriado. Pelo visto é onResume. Porém após editar eu fiz uma nova consulta no banco e mandei a lista atualizada para o adapter para que resolvesse esse caso ai. Obrigado!

            if(Activity.RESULT_OK==resultCode) {
                updatedCount = dao.salvar(lembrete);
                if(updatedCount>0) {
                    List<Lembrete> lembretesAtualizados = dao.todos;
                    adapter.adicionaAdapter(lembretesAtualizados);
                }
            } else {
                Toast.makeText(this, ConstantDataManager.MENSAGEM_PROBLEMAS_CARREGAR_ACTIVITY, Toast.LENGTH_SHORT).show();
            }

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