1
resposta

Duvida sobre a exibição lista de produto

Olá, no vídeo de tema "Conhecendo o ciclo de vida da Activity" a lista só foi exibida na activity principal quando foi declarado o companion object, gostaria de entender melhor o pq. Na minha opinião, ao criar listas diferentes todas as vezes que criássemos um produto novo, devido a instância do DAO, apareceria apenas um produto na main activity e os demais não apareceriam por estarem em listas diferentes, mas pelo visto não, não aparece nenhum produto quando cada um vai para uma lista diferente e gostaria de entender melhor pq isso acontece e porque pensei errado.

1 resposta

Olá, Caio, tudo certo?

O Companion Object em Kotlin é uma maneira de criar métodos e variáveis estáticas, ou seja, que pertencem à classe e não a uma instância específica da classe. Isso é útil quando queremos que um valor ou comportamento seja compartilhado entre todas as instâncias de uma classe.

No seu caso, quando você cria uma lista de produtos no DAO sem o uso do Companion Object, essa lista é específica para aquela instância do DAO. Portanto, se você criar uma nova instância do DAO, ela terá sua própria lista de produtos, que é independente da lista de produtos na primeira instância do DAO. Isso significa que, se você adicionar um produto à lista na primeira instância do DAO, esse produto não aparecerá na lista na segunda instância do DAO.

Agora, quando usamos o Companion Object para criar a lista de produtos no DAO, essa lista se torna compartilhada entre todas as instâncias do DAO. Isso significa que, se você adicionar um produto à lista em uma instância do DAO, esse produto aparecerá na lista em todas as outras instâncias do DAO.

No caso do ciclo de vida da Activity, quando você sai da Activity (por exemplo, ao abrir outra Activity), a instância atual da Activity é destruída. Quando você volta para a Activity, uma nova instância da Activity é criada. Portanto, se a lista de produtos estiver na Activity sem o uso do Companion Object, essa lista será destruída junto com a instância da Activity e uma nova lista vazia será criada quando a nova instância da Activity for criada.

Espero que essa explicação tenha ajudado a esclarecer suas dúvidas sobre o uso do Companion Object em Kotlin. Espero ter ajudado e bons estudos!

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