Estive fazendo uns testes com Singletons, isso mesmo no plural!
Mas não se alarmem, é Singleton mesmo, com unicidade de instância.
O plural é devido às diversas técnicas disponíveis.
Um dos testes que achei interessante publicar é o código que segue abaixo.
Dei o nome de ObjectManager para a classe, que tem como objetivo guardar referências para objetos a serem utilizadas em mais de um componente do Android.
Os objetos são guardados em pares chave e valor, a chave sendo um Long e o valor a referência à uma instância de algum objeto.
A implementação é thread-safe, uso um HashMap envolto com Collections.synchronizedMap() e um AtomicLong para controlar a geração das chaves.
Para incluir um objeto usamos o método put(objeto) que retorna um Long que é a chave para recuperar a referência para o objeto, para isso usamos o método get(key).
Uma vez colocado um objeto no ObjectManager, podemos passar a chave para um componente por um intent.putLong("meuObjeto", chave), e recuperar o objeto recuperando a chave por meio do intent.getLong("meuObjeto").
Para testar, vamos incluir uma String no ObjectManager e passar a chave para uma intent.
Para recuperar no outro componente, usamos o intent.getLong para recuperar a chave e em seguida acessar o objeto salvo no componente anterior.
Notem que temos dois métodos para eliminar referências desnecessárias, remove e clear. Isso é necessário para evitar gasto de memória e também para evitar dados da sessão anterior mantidos pelo Android.
O Android pode manter um processo para o aplicativo, mesmo não tendo nenhum componente ativo ou em background.
Por hoje, é isso.
Abraços.
Nenhum comentário:
Postar um comentário